数据类型
整数类型
当初始化一个没有显式指定类型的变量时,编译器会自动推断为自Int
起足以表示该值的最小类型.
val one = 1 //Int
val threeBillion = 3000000000 // Long
val oneLong = 1L // Long
val oneByte: Byte = 1
浮点类型
对于以小数初始化的变量。编译器会推断为Double
类型:
Float
类型,添加f
或F
后缀。
Info
Kotlin中的数字没有隐式拓宽转换。例如,具有Double
参数的函数只能对Double
值调用,而不能对Float
、Int
或者其他数字值调用:
数字字面常量
- 十进制:
123
- Long类型用大写
L
标记:123L
- Long类型用大写
- 十六进制:
0x0F
- 二进制:
0b00001011
Kotlin 不支持八进制
浮点数常规表示方法:
- 默认double:123.5
、123.5e10
- Float用f
或者F
标记123.5.f
可以用下划线使数字常量更易读:
val oneMillion = 1_000_000
val creditCardNumber = 1234_5678_90123_3456L
val socialSecurityNumber = 999_99_9999L
val hexBytes = 0xFF_EC_DE_5E
val bytes = 0b11010010_01101001_10010100_10010010
显式数字转换
较小的类型不能隐式转换成较大的类型。
算术运算会有重载做适当转换,例如:整数除法
需要返回浮点类型的(将其中一个参数显式转换成浮点类型)
位运算列表: -shl(bits)
-有符号左移
- shr(bits)
-有符号右移
- ushr(bits)
-无符号右移
- and(bits)
- 位与
- or(bits)
-位或
- xor(bits)
- 位异或
- inv()
-位非
字符串
通常用双引号("
)
s[i]
,也可以使用for
循环遍历: