跟我一起学“仓颉”编程语言-Array数组
2026/6/8 19:11:54 网站建设 项目流程

在编程时,需要存储并操作同类型的一组数据,这是之前学习的基本数据类型已经无法满足这种需求了,为了方便程序可以存储并操作同类型的一组数据,仓颉提供了4种Collection类型:Array、ArrayList、HashSet、HastMap,这些类型都是引用类型。

一、Array的创建

Array数组,用于存储相同数据类型的有序序列的数据,并且一旦初始化后,它的长度就固定下来了,不能对其进行新增和删除的操作。

package Study main() { // 通过[] 赋值来创建数组 let arr1: Array<Int64> = [2, 4, 1, 4, 0] println(arr1) // 通过构造函数来创建 3表示长度,repeat表示数组的元素 let arr2 = Array<Int64>(3, repeat: 0) println(arr2) // 通过尾随lambda表达式创建 3表示长度 let arr3 = Array<Int64>(3) {index => index} println(arr3) }

二、Array的获取

判断Array是否为空

package Study main() { let array1 = [1,2,3,4,5] println(array1.isEmpty()) }

获取Array的长度

package Study main() { let arr1: Array<Int64> = [2, 4, 1, 4, 0] println(arr1.size) }

获取单个元素

package Study main() { let arr1: Array<Int64> = [2, 4, 1, 4, 0] println(arr1[0]) println(arr1[2]) println(arr1[arr1.size - 1]) }

注意:还可以通过get函数来获取单个元素,但是get函数返回的是Option<T>类型,需要对返回值进行解构。

package Study main() { let arr1: Array<Int64> = [2, 4, 1, 4, 0] println(arr1.get(0)) println(arr1.get(0).getOrThrow()) }

注意:在解构get函数的结果时,注意数组越界的问题。

获取部分元素

利用区间类型,进行切片获取

package Study main() { let arr1: Array<Int64> = [2, 4, 1, 4, 0] // 取[0, 2)的所有元素,2位置元素取不到 println(arr1[..2]) // 取下标2之后的所有元素 println(arr1[2..]) // 取[1, 4]的所有元素 println(arr1[1..=4]) // 取所有元素 println(arr1[..]) }

注意:这里的区间类型的步长(step)必须为1。

通过slice函数

package Study main() { let arr1: Array<Int64> = [2, 4, 1, 4, 0] // 取[1, 3]所有的元素 1表示下标为1,3表示长度,即:从下标为1处,取3个元素 println(arr1.slice(1, 3)) }

循环输出数组元素

package Study main() { let arr1: Array<Int64> = [2, 4, 1, 4, 0] for (i in 0..arr1.size) { println(arr1[i]) } println() // 增强for循环 for (item in arr1) { println(item) } }

判断Array数组中是否包含指定元素

package Study main() { let arr1: Array<Int64> = [2, 4, 1, 4, 0] println(arr1.contains(1)) println(arr1.contains(5)) }

三、Array的修改

修改单个元素

package Study main() { let arr1: Array<Int64> = [2, 4, 1, 4, 0] arr1[arr1.size - 1] = 5 println(arr1[arr1.size - 1]) }
package Study main() { let arr1: Array<Int64> = [2, 4, 1, 4, 0] println(arr1) // 将下标为2的元素修改成 5 arr1[2] = 5 println(arr1) }

Array数组的赋值

package Study main() { let arr1: Array<Int64> = [2, 4, 1, 4, 0] var arr2: Array<Int64> = arr1 println(arr1) println(arr2) println() arr2[0] = 9 // 因为Array数组是引用类型,修改arr2的元素,会影响到arr1 println(arr1) println(arr2) // 正确做法 使用clone方法 println() arr2 = arr1.clone() arr2[0] = 6 println(arr1) println(arr2) // 获取部分元素 let arr3 = arr1.clone(1..4) println(arr3) }

注意:Collection类型是引用类型,因此,Array、ArrayList、HashSet、HashMap都可以用clone方法。

四、小结

本章为大家详细的介绍了仓颉编程语言中Array数组的内容,下一章,为大家带来ArrayList集合的内容。最后,创作不易,如果大家觉得我的文章对学习仓颉服务端开发有帮助的话,就动动小手,点个免费的赞吧!收到的赞越多,我的创作动力也会越大哦,谢谢大家🌹🌹🌹!!!

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询