集合——成员关系与运算
使用 Swift Set 存储唯一元素,进行快速成员检查、集合代数运算(union/intersection/subtracting/symmetricDifference)以及关系判断(子集/超集/不相交)。
集合——成员关系与运算 是 CoddyKit 上的免费 Swift Academy 课时。 这是第 2 节课,共 3 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Swift Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Swift Academy 课程共包含 3 节课。
为什么使用集合?
目标:掌握集合,用于存储不重复且无序的值,并快速检查成员关系。您将使用集合代数和关系来分析数据。
创建与检查成员
请创建集合、添加或移除元素,并检查 contains;重复元素会被忽略。
var fruits: Set<String> = ["apple", "banana"]
fruits.insert("banana") // no duplicate added
fruits.insert("cherry")
fruits.remove("apple")
print("has banana?", fruits.contains("banana"))集合代数
请使用 union、intersection、subtracting 和 symmetricDifference。
let evens: Set<Int> = [2,4,6,8]
let odds: Set<Int> = [1,3,5,7]
print("union", evens.union(odds).sorted())
print("intersect", evens.intersection([2,3,4,5]).sorted())
print("subtract", evens.subtracting([2,8]).sorted())
print("symDiff", evens.symmetricDifference([4,10]).sorted())关系
关系包括:isSubset、isSuperset 和 isDisjoint。
let a: Set<Int> = [1,2]
let b: Set<Int> = [1,2,3,4]
print("a ⊆ b?", a.isSubset(of: b))
print("b ⊇ a?", b.isSuperset(of: a))
print("disjoint?", a.isDisjoint(with: [3,4]))遍历与排序
集合是无序的;需要稳定顺序时请进行排序(例如用于界面输出)。
let colors: Set<String> = ["red", "blue", "green"]
// Sets are unordered; sort for deterministic output
for c in colors.sorted() { print(c) }提示与性能
提示:
- 请优先使用集合进行成员测试(通常为 O(1))。
- 元素必须可哈希(String、Int 以及许多枚举都可以直接使用)。
- 顺序很重要时,请转换为
Array或使用sorted()。
对称差集
快速检查:哪个方法会返回只存在于其中一个集合、而不同时存在于两个集合中的元素?
回顾
回顾:集合存储不重复的元素,特别适合进行成员检查。请练习集合代数(union/intersection/subtracting/symmetricDifference)和关系(子集/超集/不相交)。
常见问题解答
「集合——成员关系与运算」课时是免费的吗?
是的 — 「集合——成员关系与运算」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Swift Academy 课程的其余内容,请升级到 CoddyKit PRO。 Swift Academy 课程共包含 3 节课。
「集合——成员关系与运算」这节课中我会学到什么?
使用 Swift Set 存储唯一元素,进行快速成员检查、集合代数运算(union/intersection/subtracting/symmetricDifference)以及关系判断(子集/超集/不相交)。 你通过在浏览器中直接运行的动手代码来练习 Swift Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Swift Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Swift Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 3 节。
「集合——成员关系与运算」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Swift Academy 课中编写并运行代码吗?
能。每节 Swift Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。