匹配范围与元组
根据数值范围和元组形状进行 switch。
匹配范围与元组 是 CoddyKit 上的免费 Swift Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Swift Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Swift Academy 课程共包含 4 节课。
匹配范围
分支可以使用 1...5 这样的范围运算符匹配一整段值。如果值落在该范围内,就会执行这个分支。
let score = 85
switch score {
case 0..<50:
print("Fail")
case 50...100:
print("Pass")
default:
print("Invalid")
}闭区间与半开区间
使用闭区间(...)包含上限,使用半开区间(..<)排除上限。请选择不会相互重叠的边界。
let age = 18
switch age {
case 0..<13:
print("Child")
case 13..<20:
print("Teen")
default:
print("Adult")
}范围分支的顺序
Swift 会从上到下检查分支,并执行第一个匹配项,因此使用互不重叠的范围可以让行为更容易预测。
let temp = 30
switch temp {
case ..<0:
print("Freezing")
case 0..<20:
print("Cool")
case 20...:
print("Warm")
default:
print("?")
}对元组使用分支语句
您可以对元组使用分支语句,一次匹配多个值。每个位置都可以是字面量、范围或通配符 _。
let point = (1, 1)
switch point {
case (0, 0):
print("Origin")
case (_, 0):
print("On x-axis")
case (0, _):
print("On y-axis")
default:
print("Elsewhere")
}元组中的通配符
下划线 _ 可以匹配该位置的任意值,让您专注于需要关注的部分。
let result = (200, "OK")
switch result {
case (200, _):
print("Success")
case (_, "Error"):
print("Has error")
default:
print("Other")
}元组中的范围
元组模式可以在每个位置使用范围,从而实现强大的二维匹配。
let coord = (3, 8)
switch coord {
case (0...5, 0...5):
print("Bottom-left quadrant")
case (0...5, 6...10):
print("Top-left quadrant")
default:
print("Far")
}匹配完全相同的元组
您可以匹配一个完全指定的元组,以检测某个精确组合。
let move = ("up", 2)
switch move {
case ("up", 2):
print("Jump twice up")
case ("down", _):
print("Going down")
default:
print("Other move")
}对数字分类
使用范围匹配可以简洁直接地将数字归入不同区间。
let n = -4
switch n {
case ..<0:
print("negative")
case 0:
print("zero")
case 1...:
print("positive")
default:
print("?")
}字符范围
由于字符可以进行比较,您甚至可以匹配一段字符范围。
let ch: Character = "k"
switch ch {
case "a"..."m":
print("First half")
case "n"..."z":
print("Second half")
default:
print("Not a lowercase letter")
}组合元组中的各个位置
元组匹配会同时检查所有位置;每个位置都匹配时,分支才会执行。
let weather = (sunny: true, temp: 25)
switch (weather.sunny, weather.temp) {
case (true, 20...):
print("Nice and warm")
case (true, _):
print("Sunny but cool")
default:
print("Not sunny")
}为什么这种方式很强大
范围和元组模式可以让一个分支语句表达原本需要许多嵌套 if 语句才能实现的逻辑,同时保持结构扁平且易读。
let (x, y) = (0, 5)
switch (x, y) {
case (0, 0): print("origin")
case (0, _): print("y-axis")
case (_, 0): print("x-axis")
default: print("plane")
}快速检查
测试范围和元组匹配。
回顾:匹配范围和元组
分支可以匹配 1...5 和 0..<n 这样的范围;元组模式则可以使用字面量、范围和通配符 _ 一次匹配多个值。
let p = (0, 4)
switch p {
case (0, _): print("y-axis")
default: print("other")
}常见问题解答
「匹配范围与元组」课时是免费的吗?
是的 — 「匹配范围与元组」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Swift Academy 课程的其余内容,请升级到 CoddyKit PRO。 Swift Academy 课程共包含 4 节课。
「匹配范围与元组」这节课中我会学到什么?
根据数值范围和元组形状进行 switch。 你通过在浏览器中直接运行的动手代码来练习 Swift Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Swift Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Swift Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「匹配范围与元组」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Swift Academy 课中编写并运行代码吗?
能。每节 Swift Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。