Kotlin 内置类型 Numbers

地址:http://kotlinlang.org/docs/reference/basic-syntax.html

基本类型 (一)

在 Kotlin 中,一切都是对象,这意味着我们可以在任何变量上调用成员函数和属性
一些类型是内置的,因为他们的实现被优化过,但是对于用户来说,可以把它们看作普通
的类。这一节我们描述这些类型:numbers, characters, booleans 和 arrays。

Numbers

Kotlin 处理 numbers 的方式和 Java 很像,但不完全相同。比如 Kotlin 没有隐式
的范围扩大,在字面值的表示上也有一些区别。

Kotlin 提供下列的内置类型表示 Numbers(这和 Java 有点像)

类型位数
Double64
Float32
Long64
Int32
Short16
Byte8



注意到,字符型(Char)在 Kotlin 中不属于 Numbers

字面常量

整数值有下面几种字面常量:

—— 十进制:123

—— Long 型用大写 L 标记:123L

—— 十六进制:0x0F

—— 二进制:0b00001011

注意到:不支持 八进制 的字面常量

Kotlin 也支持浮动数的约定标记:

– Doubles : 123.5, 123.5e10

– Floats : 123.5f 或者 123.5F

从 V1.1 开始,Kotlin 支持下划线数字字面值

你可以使用 下划线 来让数字常量可读性更强:

val oneMillion = 1_000_000
val creditCardNumber = 1234_5678_9012_3456L
val socialSecurityNumber = 999_99_9999L
val hexBytes = 0xFF_EC_DE_5E
val bytes = 0b11010010_01101001_10010100_10010010

关于装箱

在 java 平台中,numbers 在 JVM 中以原生类型方式存储,除非我们需要一个
可为 null 的引用或者涉及到泛型。在后面一种类型中,数值被装箱。

Kotlin 中,numbers 的装箱没有保持一致性 ( === )

val a: Int = 10000
print(a === a) // 打印 true
val boxedA: Int? = a
val anotherBoxedA: Int? = a
print (boxedA === anotherBoxedA) // !!! 打印 false !!!

另一方面,它保留了 相等性 ( == )

val a: Int = 10000
print(a == a) // 打印 true
val boxedA: Int? = a
val anotherBoxedA: Int? = a
print (boxedA == anotherBoxed) // 打印 true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值