💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## [数组](http://www.kotlincn.net/docs/reference/basic-types.html#%E6%95%B0%E7%BB%84) ### 数组的定义 在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会占用一块内存单元,它没有被分配初始值。内存中的状态如图2-6所示 ![](https://img.kancloud.cn/c2/da/c2da5a7ee57bb04984346a909512e08f_1367x511.png) 在图2-6中描述了变量int_array引用数组的情况。该数组中有3个元素,初始值分别是1、2、3。数组中每个元素都有一个索引(也可称为角标),要想访问数组中的元素可以通过int_array[0]、int_array[1]、int_array[2]的形式。 >[info]需要注意的是,数组中最小的索引是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]}") //访问数组中的第一个元素 println("int_arr[1]=${int_arr[1]}") //访问数组中的第二个元素 println("int_arr[2]=${int_arr[2]}") //访问数组中的第三个元素 println("数组的长度是:${int_arr.size}") //打印数组长度 } ``` 运行结果 ``` int_arr[0]=1 int_arr[1]=2 int_arr[2]=3 数组的长度是:3 ``` 在上述代码中声明了一个IntArray类型的变量int_arr,并将数组在内存中的地址赋给它,通过角标来访问数组中的元素,通过size属性访问数组中元素的个数。从运行的结果可以看出,数组中的3个元素初始值分别为1、2、3。在Kotlin中,如果创建的数组对象没有被初始化,则当访问数组中的元素时,程序会报错并提示数组对象必须初始化。 >[warning]注意:数组中的索引不能超出索引的范围