参考链接: 《Kotlin实战》
基本类型
在Kotlin中并不区分基本数据类型和包装类型,例如:
|
|
大多数情况下Kotlin的Int类型会被编译成Java的基本数据类型,用作泛型类型参数的基本类型会被编译成Java的包装类型。
在Kotlin中的可空类型不能用Java的基本类型表示(例如:Int?、Boolean?),这个时候会被编译成对应的Java包装类型。
|
|
上面代码的listOf集合类的参数是泛型,所以会编译成java的包装类型,所以要高效的存储基本类型建议用数组来存储。
数字转换
在Kotlin中不会自动进行数字类型转换,必须显式的进行转换。
|
|
每一个基本数据类型都有对应的转换方法(Boolean除外)
但是在下面这种情况会发生自动转换(使用L, f等类型标志)
|
|
上面l的类型是Long
根类型Any
Any类型是Kotlin所有非空类型的超类型(包括像Int这样的基本类型)。Any类似于Java中的Object
注意:Any是非空类型,如果要使用可空类型可以用Any?
|
|
Unit类型
Kotlin中Unit和Java中的void一样,当函数没有返回值的时候可以用Unit作为返回类型。
|
|
Unit可以省略掉。
Nothing类型
可空集合
|
|
只读集合和可变集合
Kotlin中Collection接口可以遍历集合中的元素,执行读取操作,但是无法修改。
MutableCollection接口继承自Collection,可以实现集合中元素的修改。
|
|