资讯动态

Swift集合类型完全教程:数组、Set与字典的增删改查实战(Swift编程语言中文版)

发布时间:2026/9/20 14:18:22 来源:尧图企业网站定制
Swift集合类型完全教程数组、Set与字典的增删改查实战Swift编程语言中文版【免费下载链接】the-swift-programming-language-in-chinese中文版 Apple 官方《Swift 编程语言》项目地址: https://gitcode.com/gh_mirrors/th/the-swift-programming-language-in-chinese在 Swift 开发中Swift集合类型是存储和组织数据的核心工具。本教程面向新手通过《Swift 编程语言》中文版的官方文档带你快速掌握数组Array、Set集合与字典Dictionary三大集合类型的创建、增删改查与遍历实战帮助你在实际项目中做出正确选型并写出更地道的 Swift 代码。3大集合类型怎么选一张表看懂Swift 的数组、集合和字典都是类型安全的——你不能往[Int]数组里错误地塞入字符串取出值时类型也是确定的。集合类型顺序重复值典型场景类型写法数组 Array✅ 有序✅ 允许有序列表、购物清单、记录序列[Element]集合 Set❌ 无序❌ 自动去重标签、去重、唯一值判断SetElement字典 Dictionary❌ 无序键唯一键值映射、配置、查找表[Key: Value] 一句话选型口诀要顺序选数组要去重选 Set要查表选字典。数组有序的值列表数组创建与初始化数组字面量是最常用的写法——把值用逗号分隔、放进方括号即可Swift 还能自动推断类型var shoppingList [Eggs, Milk]其他常见创建方式空数组var someInts: [Int] []重复默认值var threeDoubles Array(repeating: 0.0, count: 3)数组合并var sixDoubles threeDoubles anotherThreeDoubles数组的增删改查实战以shoppingList为例覆盖增、删、改、查四类操作操作代码说明增末尾shoppingList.append(Flour)追加一项增批量shoppingList [Cheese, Butter]追加整个数组增指定位置shoppingList.insert(Maple Syrup, at: 0)插入到索引 0删指定位置shoppingList.remove(at: 0)返回被删除项删末尾shoppingList.removeLast()更高效地删末项改单点shoppingList[0] Six eggs下标赋值改范围shoppingList[4...6] [Bananas, Apples]批量替换查shoppingList[0]、shoppingList.count、shoppingList.isEmpty下标取值 / 数量 / 判空⚠️ 注意数组从 0 开始索引最大有效索引是count - 1越界会触发运行时错误。遍历数组for (index, value) in shoppingList.enumerated() { print(Item \(index 1): \(value)) }enumerated()会同时给出索引和值是遍历数组最实用的写法。Set无序但唯一的值集合Set 的创建与增删改查集合存储相同类型的不同值元素自动去重、无固定顺序。类型必须显式声明为Set字面量无法推断出 Set 类型var favoriteGenres: Set [Rock, Classical, Hip hop]操作方法说明增favoriteGenres.insert(Jazz)加入新元素删favoriteGenres.remove(Rock)存在则删除并返回该值否则返回nil清空favoriteGenres.removeAll()移除所有元素查favoriteGenres.contains(Funk)判断是否包含数量favoriteGenres.count/isEmpty元素个数 / 判空 存入 Set 的类型必须可哈希String、Int、Double、Bool等基本类型天然可哈希自定义类型需遵循Hashable协议详见 Protocols.md。Set 的 4 大集合操作Set 最强大的地方在于集合运算一行代码即可完成交集、并集、差集与对称差let oddDigits: Set [1, 3, 5, 7, 9] let evenDigits: Set [0, 2, 4, 6, 8] oddDigits.union(evenDigits).sorted() // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] oddDigits.intersection(evenDigits).sorted() // [] oddDigits.subtracting(evenDigits).sorted() // [1, 3, 5, 7, 9] oddDigits.symmetricDifference(evenDigits).sorted() // 只存在于其中一方的值判断子集、超集与不相交let houseAnimals: Set [, ] let farmAnimals: Set [, , , , ] houseAnimals.isSubset(of: farmAnimals) // true家庭宠物都在农场里 farmAnimals.isSuperset(of: houseAnimals) // true农场包含家庭宠物 farmAnimals.isDisjoint(with: cityAnimals) // true两个集合没有共同值字典键值对的高效查找表字典的创建字典把唯一的键关联到值就像用单词查定义var airports [YYZ: Toronto Pearson, DUB: Dublin]完整类型写法为DictionaryKey, Value简写[Key: Value]更常用。键必须可哈希规则与 Set 相同。字典的增删改查实战以机场字典为例键值对操作比数组更直观操作代码说明增/改airports[LHR] London Heathrow新键则新增旧键则覆盖安全更新airports.updateValue(Dublin Airport, forKey: DUB)返回旧值方便判断是否更新查if let name airports[DUB] { ... }下标返回可选值键不存在时为nil删airports[APL] nil赋nil即删除删方法airports.removeValue(forKey: DUB)返回被删除的值不存在返回nil数量airports.count/airports.isEmpty键值对个数 / 判空遍历字典for (code, name) in airports { print(\(code): \(name)) }也可以只遍历键或值for code in airports.keys { print(code) } for name in airports.values { print(name) } 字典没有固定顺序需要排序时可用airports.keys.sorted()得到有序数组。可变与不可变var 与 let 的选型建议集合赋给变量var→ 可增删改元素集合赋给常量let→ 不可变大小和内容都不能改。官方建议在不需要修改的场景下优先使用不可变集合既让代码更易读也能让 Swift 编译器更好地优化性能。总结集合类型学习路径 掌握本教程后你应能完成根据顺序 / 去重 / 查表需求在数组、Set、字典之间快速选型熟练使用字面量创建集合并完成append / insert / remove / 下标赋值等增删改查操作用union、intersection、isSubset(of:)等完成Set 集合运算用可选绑定安全地读取字典值理解字典下标为何返回可选值。想继续深入建议按以下路径学习本中文版文档完整源码见 CollectionTypes.md数组/集合/字典的底层原理 → Generics.md泛型集合for-in循环细节 → ControlFlow.md下标的高级用法 → Subscripts.md可哈希类型与协议 → Protocols.md【免费下载链接】the-swift-programming-language-in-chinese中文版 Apple 官方《Swift 编程语言》项目地址: https://gitcode.com/gh_mirrors/th/the-swift-programming-language-in-chinese创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价