创建集合
本课属于 Coddy Swift 学习旅程的“逻辑与流程”单元。第 18 课,共 56 课。
Set 是一种无序集合,其中的值各不相同。每个成员的元素类型都相同,不允许重复,也没有可预测的迭代顺序。
var colors: Set<String> = ["red", "green", "blue", "red"]
print(colors.count) // 3(重复的 "red" 被去掉了)在字面量形式中,类型注解 Set<String> 是必需的,因为单独的 ["a", "b"] 会被推断为 Array。
三个核心操作:contains、insert 和 remove。后两个操作会返回信息,说明更改是否产生了实际效果。
colors.insert("yellow") // 将它添加到集合中
colors.insert("red") // 已存在,不会产生影响
colors.contains("green") // true
colors.remove("blue") // 返回 "blue",如果不存在则返回 nil从数组创建集合可以一步完成去重:
let unique = Set([1, 2, 2, 3, 3, 3])
// 有 3 个元素,具体顺序不保证。挑战
入门读取一行输入:由逗号分隔的单词列表(可能有重复项)。
打印三行:
- 不重复单词的数量(使用
Set) - 按字母顺序排序的不重复单词,并用
,连接 - 如果输入中包含单词
swift,则输出true,否则输出false(使用contains)
对于输入 swift,ruby,go,swift,go,rust,输出为:
4
go,ruby,rust,swift
true亲手试试
let words = readLine()!.components(separatedBy: ",")
// TODO:用 Set 去重,输出数量,将排序后的结果拼接并输出,检查是否包含说明中的确切文本
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: Swift 在线编辑器