使用模式匹配的强大 switch
编写表达力强的 switch:匹配关联值、范围和元组,并添加 where 子句。保持分支穷尽且易读。
使用模式匹配的强大 switch 是 CoddyKit 上的免费 Swift Academy 课时。 这是第 2 节课,共 3 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Swift Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Swift Academy 课程共包含 3 节课。
为什么要进行模式匹配?
Swift 的分支匹配语句可以匹配模式:带载荷的枚举、数值范围、元组以及条件。它还必须覆盖所有情况。
关联值
可以直接在分支模式中使用常量/变量绑定关联值。
enum Network {
case success(code: Int, body: String)
case failure(message: String)
case offline
}
let r1: Network = .success(code: 200, body: "OK")
switch r1 {
case .success(let code, let body):
print("success", code, body)
case .failure(let msg):
print("fail:", msg)
case .offline:
print("offline")
}范围匹配
匹配类似90...100或80..<90这样的数值范围。使用,可以在一个分支中匹配多个模式。
let score = 73
switch score {
case 90...100:
print("A")
case 80..<90:
print("B")
case 60..<80:
print("C")
case 0..<60:
print("D")
default:
print("invalid")
}元组与条件
匹配元组,并使用条件进一步筛选,从而清晰地执行类似几何图形的检查。
let point = (x: -2, y: 3)
switch point {
case (0, 0):
print("origin")
case (let x, 0):
print("x-axis at", x)
case (0, let y):
print("y-axis at", y)
case (let x, let y) where x > 0 && y > 0:
print("Q1:", x, y)
default:
print("somewhere else")
}通配符与部分匹配
使用 _ 忽略字段,或只绑定您需要的内容。请让各个分支保持简短清晰。
enum Event {
case message(String, priority: Int)
case ping
}
let e: Event = .message("update", priority: 1)
switch e {
case .message(let text, priority: _):
print("msg:", text) // ignore priority with _
case .ping:
print("ping")
}提示
提示:
- 优先处理具体情况;将 default 留给少数剩余情况。
- 使用情况绑定绑定值,再使用条件子句进一步筛选。
- 在可能的情况下,设计枚举,使 switch 无需 default 也能完整覆盖所有情况。
Switch 的强大之处
快速检查:为什么 Swift 的 switch 表达能力更强?
回顾
回顾:使用 switch 匹配模式——绑定枚举的附加值、匹配范围、组合元组,并使用条件子句筛选,同时确保完整覆盖所有情况。
常见问题解答
「使用模式匹配的强大 switch」课时是免费的吗?
是的 — 「使用模式匹配的强大 switch」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Swift Academy 课程的其余内容,请升级到 CoddyKit PRO。 Swift Academy 课程共包含 3 节课。
「使用模式匹配的强大 switch」这节课中我会学到什么?
编写表达力强的 switch:匹配关联值、范围和元组,并添加 where 子句。保持分支穷尽且易读。 你通过在浏览器中直接运行的动手代码来练习 Swift Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Swift Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Swift Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 3 节。
「使用模式匹配的强大 switch」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Swift Academy 课中编写并运行代码吗?
能。每节 Swift Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。