作为集合的范围
对范围序列执行映射和筛选。
作为集合的范围 是 CoddyKit 上的免费 Swift Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Swift Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Swift Academy 课程共包含 4 节课。
范围是序列
范围不仅是一段数字,它还是一种序列,您可以使用 map 和 filter 等集合方法对其进行转换。
let squares = (1...5).map { $0 * $0 }
print(squares)映射范围
(1...n).map { ... } 会将每个数字转换为一个新值,并生成数组。请注意范围两侧的括号。
let doubled = (1...4).map { $0 * 2 }
print(doubled)为何需要括号
调用方法前必须将范围放在括号中,否则 Swift 会错误解析语法。(1...5).map 才是正确写法。
let labels = (1...3).map { "Item \($0)" }
print(labels)筛选范围
filter 只保留满足条件的值,并返回匹配值组成的数组。
let evens = (1...10).filter { $0 % 2 == 0 }
print(evens)归并范围
reduce 会将所有值合并为一个值。这里我们将 1 到 100 的数字相加。
let total = (1...100).reduce(0, +)
print(total)转换为数组
将范围包装在 Array(...) 中,会把每个值具体存储为数组中的元素。
let nums = Array(1...5)
print(nums)
print(nums.count)范围上的 forEach
您可以调用 forEach,为每个值运行一个闭包,这与 for 循环类似。
(1...3).forEach { n in
print("Tick \(n)")
}链接操作
由于每个操作都会返回一个集合,因此您可以先调用 filter,再调用 map。
let result = (1...10).filter { $0 % 2 == 0 }.map { $0 * $0 }
print(result)构建查找数据
映射范围是生成测试数据或查找表的一种快捷方式。
let table = (1...5).map { (n: $0, square: $0 * $0) }
for row in table {
print("\(row.n) -> \(row.square)")
}contains 与聚合查询
范围还支持 contains、min 和 max 等聚合查询。
let r = 5...15
print(r.contains(10))
print(r.min() ?? 0)
print(r.max() ?? 0)统计匹配项
将 filter 与 count 结合,可以统计满足条件的值有多少个。
let multiplesOf3 = (1...30).filter { $0 % 3 == 0 }.count
print(multiplesOf3)快速检查
测试将范围作为集合使用。
回顾:作为集合的范围
范围是序列,因此您可以对其调用 map、filter、reduce 和 forEach(请记住使用括号)。使用 Array(range) 可以具体生成这些值。
print((1...5).map { $0 * $0 })常见问题解答
「作为集合的范围」课时是免费的吗?
是的 — 「作为集合的范围」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Swift Academy 课程的其余内容,请升级到 CoddyKit PRO。 Swift Academy 课程共包含 4 节课。
「作为集合的范围」这节课中我会学到什么?
对范围序列执行映射和筛选。 你通过在浏览器中直接运行的动手代码来练习 Swift Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Swift Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Swift Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「作为集合的范围」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Swift Academy 课中编写并运行代码吗?
能。每节 Swift Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。