Kotlin原始类型
-
长整形 必须以大写的 L结尾,而浮点型可以以 d 和f 结尾
-
Kotlin 中 == 代表java 的equal , === 代表地址比较
-
kotlin 不支持Number 类型的 自动转化,如 int 自动转long ,需要调用toXXX方法
-
kotlin 1.3支持 无符号类型
-
kotlin 中没有 int、long、char、double 这样的原始类型,取而代之的事包装类型
实际上,在JVM 层面 ,Kotlin 中的Int 类型等同于 int ;
Kotlin 中的Int? 等同于 Integer。
这种写法让Kotlin 在语法层面 更接近纯面向对象语言。
Kotlin 数组
Kotlin为数组增加了一个Array< T >类,为基本数据类型的数组增加了XxxArray类(如:IntArray、ByteArray)
kotlin Array< T >类: 使用包装类数据 : Integer 、Float 避免了装箱与拆箱。
xxxArray类 : 则是使用了 平台的基础类型数组,如 IntArray 使用了 int []
按照在JVM 上的类型分为以下两种
val c = IntArray(5)
val d = intArrayOf(1,2,3,4,5)
- Integer[] 类型
val a = arrayOf(1)
val b = arrayOf(1.5,null)
val e = emptyArray<Int>()
kotlin 代码:
fun main(){
val a = arrayOf(1)
val b = arrayOf(1.5,null)
val e = emptyArray<Int>()
val c: IntArray = IntArray(5)
val d = intArrayOf(1,2,3,4,5)
}
Decompile:
Integer[] var10000 = new Integer[]{1};
Double[] var5 = new Double[]{1.5D, (Double)null};
Integer[] e = new Integer[0];
int[] c = new int[5];
int[] var6 = new int[]{1, 2, 3, 4, 5};
注意:
- Kotlin 中的 IntArray 不是Array 的子类 。
- Array 类型可以添加null 类型,本质上就是 包装类数组可以放null ,基础类型数组不可以。