在Java中,数组可以这样初始化:

int numbers[] = new int[] {10, 20, 30, 40, 50}

Kotlin的数组初始化是怎样的?


当前回答

val numbers: IntArray = intArrayOf(10, 20, 30, 40, 50)

详见Kotlin -基本类型。

你也可以提供一个初始化函数作为第二个参数:

val numbers = IntArray(5) { 10 * (it + 1) }
// [10, 20, 30, 40, 50]

其他回答

在Kotlin中有几种初始化数组的方法:

劳动力素质():

var myarray = arrayOf(1,2,3,4,5)

劳动力素质():

var myarray = arrayOf<Int>(1,2,3,4,5)

使用Array构造函数:

val num = Array(3, {i-> i*1})

内置的工厂方法:

val num1 = intArrayOf(1, 2, 3, 4)
//For Byte Datatype
val num2 = byteArrayOf()
//For Character Datatype
val num3 = charArrayOf()
//For short Datatype
val num4 = shortArrayOf()
//For long
val num5 = longArrayOf()

对于二维数组:

val rows = 3
val cols = 3
val value = 0
val array = Array(rows) { Array<Int>(cols) { value } }

您可以将元素类型更改为您想要的任何类型(String, Class,…),并将值更改为相应的默认值。

你可以试试这个:

var a = Array<Int>(5){0}

我想知道为什么没有人给出最简单的答案:

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>

在Kotlin中,我们可以使用arrayOf(), intArrayOf(), charArrayOf(), booleanArrayOf(), longArrayOf()函数来创建数组。

例如:

var Arr1 = arrayOf(1,10,4,6,15)  
var Arr2 = arrayOf<Int>(1,10,4,6,15)  
var Arr3 = arrayOf<String>("Surat","Mumbai","Rajkot")  
var Arr4 = arrayOf(1,10,4, "Ajay","Prakesh")  
var Arr5: IntArray = intArrayOf(5,10,15,20)