您的位置:首页 > 其它

【DOC】Kotlin 数组 Array

2017-05-30 00:00 99 查看
数组在 Kotlin 中使⽤ Array 类来表⽰,它定义了 get 和 set 函数(按照运算符重载约定这会转变为 [])和 size 属性,以及⼀些其他有⽤的成员函数:

class Array<T> private constructor() {
val size: Int
operator fun get(index: Int): T
operator fun set(index: Int, value: T): Unit
operator fun iterator(): Iterator<T>
// ……
}

我们可以使⽤库函数 arrayOf() 来创建⼀个数组并传递元素值给它,这样 arrayOf(1, 2, 3) 创建了 array [1, 2, 3]。 或者,库函数arrayOfNulls() 可以⽤于创建⼀个指定⼤⼩、元素都为空的数组。
另⼀个选项是⽤接受数组⼤⼩和⼀个函数参数的⼯⼚函数,⽤作参数的函数能够返回 给定索引的每个元素初始值:

// 创建数组
var arr0 = emptyArray<Int>()       // 长度为0的空数组
var arr1 = arrayOfNulls<Int>(250)  // 指定长度,元素都为空
val arr2 = arrayOf(1, 2, 3)        // 使用装箱
val intArr = intArrayOf(1, 2, 3)   // 还有 booleanArrayOf()、ByteArrayOf()、ShortArrayOf()等
var arr3 = Array(5){IntArray(4)}   // 二维数组

// 创建⼀个 Array<String> 初始化为 ["0", "1", "4", "9", "16"]
val Arr4 = Array(5, { i -> (i * i).toString() })

如上所述,[] 运算符代表调⽤成员函数 get() 和 set()。
注意: 与 Java 不同的是,Kotlin 中数组是不型变的(invariant)。这意味着 Kotlin 不让我们把 Array<String> 赋值给 Array<Any>,以防⽌可能的运⾏时失败(但是你可以使⽤ Array<out Any>, 参⻅类型投影)。
Kotlin 也有⽆装箱开销的专⻔的类来表⽰原⽣类型数组: ByteArray、 ShortArray、IntArray 等等。这些类和 Array 并没有继承关系,但是 它们有同样的⽅法属性集。它们也都有相应的⼯⼚⽅法:

val x: IntArray = intArrayOf(1, 2, 3)
x[0] = x[1] + x[2]


#Over
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Kotlin Array 数组