基本数值类型
在 Kotlin 中,所有东西都是对象,你每定义的一个变量,其实 Kotlin 帮你封装了一个对象,这样可以保证不会出现空指针
表达式
val byte: Byte = 1 //字节 || 8位
val short: Short = 2 //短整型 || 16位
val int: Int = 3 //整型 || 32位
val long: Long = 4 //长整型 || 64位
val float: Float = 5f //浮点型 || 32位
val double: Double = 6.0 //双精度浮点型 || 64位
进制数
支持十六进制数(0x),十进制数(123),二进制数(0b),不支持八进制数
数字类型字面常量的下划线
val a = 2_00_000
val b = 0xFF_EC_DE_5E
val c = 999_99_9999L
val d = 1234_5678_9012_3456L
val f = 0b11010010_01101001_10010100
显式转换
val a: Int = 2
a.toFloat() // Float
toByte(): Byte
toShort(): Short
toInt(): Int
toLong(): Long
toFloat(): Float
toDouble(): Double
toChar(): Char
隐式转换
val a: Int = 2
val b = 2f + a // -> Float 类型
字符串(String)
//定义
val str1 = """
sdfjaklsdfjasldasdfadf
sdfsdfadsf
"""
// 模板
val a = 100
print("a = $a")
// 字符串的遍历 str[index]
val str = "abcd"
for (c in str) {
println(c) }
//可以用 + 操作符连接字符串
val s = "abcd" + 1 // s = abcd1
字符型(Char)
用单引号 '' 表示,并且不能直接视为数字,但可以转换为数字
val char1: Char = 'a'
// 字符转义
\t => 表示制表符
\n => 表示换行符
\b => 表示退格键(键盘上的Back建)
\r => 表示键盘上的Enter键
\\ => 表示反斜杠
\' => 表示单引号
\" => 表示双引号
\$ => 表示美元符号,如果不转义在kotlin中就表示变量的引用了
其他的任何字符请使用Unicode转义序列语法。例:'\uFF00'
布尔类型(Boolean)
val a: Boolean = true
val b: Boolean = false
// 逻辑操作符
|| && !
装箱和拆箱
装箱是将值类型转换为引用类型,拆箱是将引用类型转换为值类型
// java代码
int a = 1;//基本类型a
Integer b = 1;//装箱类型b
b = a;//自动装箱
a = b;//自动拆箱
在Kotlin中,所有变量的成员方法和属性都是对象,当需要一个可为 null 的引用时, 就会触发装箱操作, 装箱操作不保持对象的同一性。
val a: Int? = 1000//装箱
val b: Int = 1000
val c: Int = 1000
println(a === b)//结果为false
println(b === c)//结果为true
在 Kotlin 中,三个等号 === 表示比较对象地址,两个 == 表示比较两个值大小
val aa: Int = 2
println(aa === aa) // 输出“true”
val bbb: Int? = aa
val ccc: Int? = a
println(bbb === ccc) // !!!输出“false”!!!
println(bbb == ccc) // !!!输出“true”!!!