在Java中,数组可以这样初始化:
int numbers[] = new int[] {10, 20, 30, 40, 50}
Kotlin的数组初始化是怎样的?
在Java中,数组可以这样初始化:
int numbers[] = new int[] {10, 20, 30, 40, 50}
Kotlin的数组初始化是怎样的?
当前回答
我想知道为什么没有人给出最简单的答案:
val array: Array<Int> = [1, 2, 3]
根据对我最初答案的一个评论,我意识到这只在注释参数中使用时才有效(这对我来说真的是出乎意料)。
看起来Kotlin不允许在注释之外创建数组文字。
例如,使用args4j库中的@Option查看以下代码:
@Option( name = "-h", aliases = ["--help", "-?"], usage = "Show this help" ) var help: Boolean = false
选项参数“aliases”的类型是Array<String>
其他回答
你可以试试这个:
var a = Array<Int>(5){0}
这里有一个简单的例子
val id_1: Int = 1
val ids: IntArray = intArrayOf(id_1)
Kotlin有专门的类来表示基本类型的数组,没有装箱开销。例如- IntArray, ShortArray, ByteArray等。我需要说明,这些类与父Array类没有继承关系,但它们具有相同的方法和属性集。它们中的每一个都有相应的工厂函数。所以,要在Kotlin中初始化一个数组,你只需要键入以下内容:
val myArr: IntArray = intArrayOf(10, 20, 30, 40, 50)
...或者这样:
val myArr = Array<Int>(5, { i -> ((i + 1) * 10) })
myArr.forEach { println(it) } // 10, 20, 30, 40, 50
现在你可以使用它:
myArr[0] = (myArr[1] + myArr[2]) - myArr[3]
这个问题已经有了很好的答案。 这里是一个合并的创建int数组。
创建具有特定值的数组。 var arr = intArrayOf(12,2,21,43,23) var arr = arrayOf<Int>(12,2,21,43,23)
[12, 2, 21, 43, 23]
填充特定元素。这里是1。 var arr = IntArray(5).apply{fill(1)} val arr = IntArray(5){1}
[1, 1, 1, 1, 1]
用小于20的随机数填充大小为5的数组 val arr = IntArray(5) {Random.nextInt(20)}
[0, 2, 18, 3, 12]
根据位置填充数组元素。 这个数组是5的倍数。 val arr = IntArray(5) {i -> (i + 1) * 5}
[5, 10, 15, 20, 25]
val numbers: IntArray = intArrayOf(10, 20, 30, 40, 50)
详见Kotlin -基本类型。
你也可以提供一个初始化函数作为第二个参数:
val numbers = IntArray(5) { 10 * (it + 1) }
// [10, 20, 30, 40, 50]