当前位置:嗨网首页>书籍在线阅读

09-数组类型

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

4.3.4 数组类型

在Kotlin中,数组使用Array类表示,该类提供了get和set函数(通过运算符重载约定会转变为[])、size属性以及一些其他有用的成员函数。代码如下。

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

Kotlin提供了多种方式定义数组,库函数arrayOf()可以定义存储任意值的数组,使用另一个库函数arrayOfNulls()可以生成一个指定长度的空数组,使用Array类构造指定长度、索引和规则的初始化数组。

除此之外,Kotlin还提供了ByteArray、ShortArray、IntArray等函数来定义指定类型的数组。这些函数与Array类并没有继承关系,但它们有相同的成员函数和属性。下面是数组定义常见的示例。

// 使用arrayOf()定义可以存储任意值的数组
val arr1 = arrayOf(1, 2, 3)
println(arr1[0])   //输出 1
// 使用arrayOfNulls()定义空数组
var arr2 = arrayOfNulls<Int>(3)
println("arr2 的长度:" + arr2.size)  
//使用Array创建的数组,第一个参数为数组大小,第二个参数为每一个数组元
//素的值。例如,创建一个 Array<String>
val asc = Array(5, { i -> (i * i).toString() })  //初始化数组["0", "1", "4", "9", "16"]
println(asc.get(3))    //输出9
//使用intArray定义原生类型数组
val x: IntArray = intArrayOf(1, 2, 3)
x[0] = x[1] + x[2]
println(x[0])      //输出5

与Java不同的是,Kotlin定义的数组是不型变的,这意味着Kotlin不允许将Array\类型的数组赋值给Array\。除此之外,Kotlin中并不存在名为StringArray的数组类型,因为String不属于基本变量类型,要想在Kotlin中声明字符串数组,可以使用Array\。代码如下。

var string_array:Array<String> = arrayOf("How", "Are", "You")