我如何像在Java中那样创建数组?
int A[] = new int[N];
如何在Kotlin中做到这一点?
Answers:
根据参考资料,可以通过以下方式创建数组:
对于Java的基本类型有不同的类型IntArray,DoubleArray等等。它存储拆箱值。
它们是使用相应的构造函数和工厂函数创建的:
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为Boolean。
非基本数组由Array<T>类表示,其中T项类型。
T还是可以的类型Java中的原始的一种(Int,Boolean,...),但值内将等同盒装Java的Integer,Double等等。
同样,T可以像和一样为可为空和为非空。StringString?
这些以类似的方式创建:
val nulls = arrayOfNulls<String>(size) //equivalent in Java: new String[size]
val strings = Array(size) { "n = $it" }
val myStrings = arrayOf("foo", "bar", "baz")
val boxedInts = arrayOfNulls<Int>(size) //equivalent in Java: new Integer[size]
val boxedZeros = Array(size) { 0 }
Array<Int>(size)不编译。那是因为如果不提供元素就不能创建不可为空的数组。
在Kotlin中,创建大小为N的IntArray很简单。使用IntArray(n)或适当的类型,如热键答案中所详述。
当使用固定大小的数组时,可以使用Kotlin Destructuring
// Create fixed sized array
val point = IntArray(2)
// Access values directly
val (x, y) = point
在这种情况下,x将从索引0,y索引1等中获取。
int,但是对于Objects,有stackoverflow.com/questions/32679060/…–