根据 reference,数组按以下方式创建:
>对于Java的原始类型,存在不同的类型IntArray,DoubleArray等,它们存储unboxed值.
它们是使用相应的构造函数和工厂函数创建的:
val arrayOfZeros = IntArray(size) //equivalent in Java: new int[size]
val numbersFromOne = IntArray(size) { it + 1 }
val myInts = intArrayOf(1, 1, 2, 3, 5, 8, 13, 21)
第一个与Java相似,它只是创建一个填充了默认值的原始数组,例如:对于Int为零,对于布尔值为false.
>非原始数组由数组< T>表示. class,其中T是项类型.
T仍然可以是Java中的一种类型基元(Int,Boolean,…),但是里面的值将与Java的Integer,Double等等相等.
另外,T可以是nullable and non-null,如String和String?.
这些是以类似的方式创建的:
val nulls = arrayOfNulls(size) //equivalent in Java: new String[size]
val strings = Array(size) { "n = $it" }
val myStrings = arrayOf("foo", "bar", "baz")
val boxedInts = arrayOfNulls(size) //equivalent in Java: new Integer[size]
val boxedZeros = Array(size) { 0 }