Kotlin 数组的定义

Kotlin 数组的定义,在Kotlin中,数组使用Array表示,其中数值类型、布尔类型、字符类型、字符串类型都可以定义为数组。数组的定义格式有两种,具体如下:

//第1 种定义格式 
var int_array: IntArray = intArrayOf(1, 2, 3) 
//第2 种定义格式 
var int_array: Array<Int> = arrayOf(1, 2, 3) 
var string_array: Array<String> = arrayOf("a", "b")//String 数组的定义方式

下面我们以定义Int类型数组为例进行分析,上述语句中就相当于在内存中定义了3个Int类型的变量,第1个变量的名称为int_array[0],第2个变量的名称为int_array[1],以此类推,第3个变量的名称为int_array[2],这些变量的初始值分别为1、2、3。为了更好地理解数组的这种定义方式,可以将上面的一句代码分成两句来写,具体如下:

var int_array: IntArray             //声明IntArray 类型的变量 
int_array = intArrayOf(1, 2, 3)     //创建长度为3,初始值分别为1、2、3 的数组

接下来,通过两张内存图来详细地说明数组在创建过程中内存的分配情况。

第1行代码var int_array:IntArray声明了一个IntArray类型的变量int_array,即一个Int类型的数组。变量int_array会占用一块内存单元,它没有被分配初始值。内存中的状态如图所示。
Kotlin 数组的定义

上图中描述了变量int_array引用数组的情况。该数组中有3个元素,初始值分别是1、2、3。数组中每个元素都有一个索引(也可称为角标),要想访问数组中的元素可以通过int_array[0]、int_array[1]、int_array[2]的形式。

需要注意的是,数组中最小的索引是0,最大的索引是“数组的长度-1”。在Kotlin中,为了方便获取数组的长度,提供了一个size属性,在程序中可以通过“数组名.size”的方式来获取数组的长度,即元素的个数。

接下来,我们通过一个案例来熟悉如何定义数组以及访问数组中的元素,具体代码如下所示。

fun main(args: Array<String>) {
    var int_arr: IntArray                       //声明变量
    int_arr = intArrayOf(1, 2, 3)               //初始化数组
    println("int_arr[0]=" + int_arr[0])         //访问数组中的第1 个元素
    println("int_arr[1]=" + int_arr[1])         //访问数组中的第2 个元素
    println("int_arr[2]=" + int_arr[2])         //访问数组中的第3 个元素
    println(" 数组的长度是:" + int_arr.size)      //打印数组长度
}

运行结果:

int_arr[0]=1
int_arr[1]=2
int_arr[2]=3
数组的长度是:3

在上述代码中声明了一个IntArray类型的变量int_arr,并将数组在内存中的地址赋给它,在4~6行代码中通过角标来访问数组中的元素,在第7行代码中通过size属性访问数组中元素的个数。从运行的结果可以看出,数组中的3个元素初始值分别为1、2、3。在Kotlin中,如果创建的数组对象没有被初始化,则当访问数组中的元素时,程序会报错并提示数组对象必须初始化。

注意:数组中的索引不能超出索引的范围

每个数组的索引都有一个范围,即0~size-1。在访问数组的元素时,索引不能超出这个范围,否则程序会报错。具体示例代码如下:

fun main(args: Array<String>) {
    var int_arr: IntArray
    int_arr = intArrayOf(1, 2, 3)
    println("int_arr[0]=" + int_arr[3])
}

运行结果:

Exception in thread"main"java.lang.ArrayIndexOutOfBoundsException:3
at com.hello.IntelligentConversionKt.main(IntelligentConversion.kt:4)

上述代码的运行结果中所提示的错误信息是数组越界异常ArrayIndexOutOfBoundsException。出现这个异常的原因是数组的长度为3,其索引的范围为0~2,第4行代码使用索引3来访问元素时,该索引超出了数组的索引范围。

所谓异常是指程序中出现的错误,程序会报告出错的异常类型、出错的行号以及出错的原因。

酷客教程相关文章:

赞(0)

评论 抢沙发

评论前必须登录!