0Pricing
Swift Academy · 课时

作为集合的范围

对范围序列执行映射和筛选。

作为集合的范围 是 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 反馈 — 无需本地设置。

此课程中的所有课时

  1. 闭区间与半开区间
  2. 单侧范围
  3. 使用 stride(from:to:by:) 计数
  4. 作为集合的范围
← 返回 Swift Academy