当前位置: 首页 > news >正文

跟我一起学“仓颉”编程语言-Array数组

在编程时,需要存储并操作同类型的一组数据,这是之前学习的基本数据类型已经无法满足这种需求了,为了方便程序可以存储并操作同类型的一组数据,仓颉提供了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集合的内容。最后,创作不易,如果大家觉得我的文章对学习仓颉服务端开发有帮助的话,就动动小手,点个免费的赞吧!收到的赞越多,我的创作动力也会越大哦,谢谢大家🌹🌹🌹!!!

http://www.gsyq.cn/news/1488073.html

相关文章:

  • ASP+Access实现的浏览器可用人事管理系统(含论文文档与答辩PPT)
  • 终极鼠标性能解放:Mac Mouse Fix 如何让你的10美元鼠标超越苹果触控板
  • 告别繁琐接线:KMS-4-WF无线模块+3D打印外壳,打造你的桌面物理快捷键
  • 大模型落地难?知识工程才是AI价值上限的“金钥匙”!| 企业必读
  • 2026年C语言就业真的很差吗?现在学习还可以找到好工作吗?
  • Birdtray未来路线图:Wayland支持、新功能规划和社区发展展望
  • 石家庄闲置名包回收,2026这五家机构谁更靠谱? - 奢侈品回收测评
  • 2026年6月智慧泵房直销厂家推荐,一体化智慧泵房/潜水排污泵/一体化加压泵站/控制柜,智慧泵房源头厂家哪家靠谱 - 品牌推荐师
  • 抖音下载神器:一键批量下载无水印视频的终极指南
  • 2026广州包包回收!5家门店横向测评 专业实力排行榜 - 奢侈品回收评测
  • 国内冲压拉伸油核心生产厂家综合实力排行 - 奔跑123
  • 抖音批量下载终极指南:免费无水印下载工具完整教程
  • 看懂这3个经营分析指标,再去开经营分析会
  • 2026 杭州余杭区高端首饰回收实力测评,6 家专业门店鉴定流程与报价揭秘 - 奢侈品回收评测
  • 告别双系统折腾:保姆级教程,用WSL2+PyCharm在Windows上跑通CUDA深度学习
  • 抖音无水印下载终极指南:三步掌握douyin-downloader高效技巧
  • [特殊字符] 书匠策AI:把期刊论文写作变成“放风筝“的全新体验
  • 《人工智能概论》实验6 知识点复习提纲
  • 终极实战:深度解析OpCore-Simplify如何实现OpenCore EFI配置的完全自动化
  • 支持训练安全帽识别、抽烟识别、人员跌倒、明火检测等多种模型;自主训练 想训练什么模型训练什么模型; 新增自动标注功能 省去大量标注劳动力;升级yolo11 训练速度极快
  • Kronos金融预测模型深度实战:从基础应用到量化策略部署
  • 收藏!小白程序员必看:AI时代高薪IT岗位全解析与进阶指南
  • 2026 杭州西湖区卡地亚梵克雅宝首饰回收测评,7家门店走访估价全公开 - 奢侈品回收评测
  • 衢州本地黄金回收指南 专业回收各类黄金珠宝奢侈品 - 润富黄金回收
  • 福州手表回收报价大不同?2026最新行情教你卖高价 - 奢侈品回收评测
  • 用Audacity开启你的声音创作之旅:从录音小白到音频魔法师
  • 别再傻傻分不清了!用PyTorch代码实战带你搞懂上采样与反卷积(附避坑指南)
  • 2026优质风口风阀厂家推荐及行业选择参考 - 品牌排行榜
  • 南通黄金回收哪家靠谱?2026年6月金价参考,上门回收现场检测秒到账 - 润富黄金回收
  • 2026论文降AI率网站:11款工具实测谁才是真神器?