Menu
CoddyTech

创建集合

本课属于 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 个元素,具体顺序不保证。
challenge icon

挑战

入门

读取一行输入:由逗号分隔的单词列表(可能有重复项)。

打印三行:

  1. 不重复单词的数量(使用 Set)
  2. 按字母顺序排序的不重复单词,并用 , 连接
  3. 如果输入中包含单词 swift,则输出 true,否则输出 false(使用 contains)

对于输入 swift,ruby,go,swift,go,rust,输出为:

4
go,ruby,rust,swift
true

亲手试试

let words = readLine()!.components(separatedBy: ",")

// TODO:用 Set 去重,输出数量,将排序后的结果拼接并输出,检查是否包含说明中的确切文本
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: Swift 在线编辑器