0Pricing
Swift Academy · 课时

匹配范围与元组

根据数值范围和元组形状进行 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 反馈 — 无需本地设置。

此课程中的所有课时

  1. 对值进行穷尽式 Switch
  2. 匹配范围与元组
  3. 值绑定与 where 子句
  4. 复合分支与贯穿执行
← 返回 Swift Academy