Swift Academy · 课时

if let 与简写绑定

在作用域内解包可选值,包括 Swift 5.7 的简写语法。

第 1 / 4 课13 个步骤

if let 与简写绑定 是 CoddyKit 上的免费 Swift Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Swift Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Swift Academy 课程共包含 4 节课。

为何绑定可选值

必须先解包可选值,才能使用其中的值。if let 只会在值存在时安全地解包它。

let stored: Int? = 5
if let value = stored {
    print(value)
}

if let 形式

写成 if let name = optional { ... }。在大括号内部,name 是已解包的非可选值。如果可选值为 nil,则会跳过整个代码块。

let input: String? = "Swift"
if let text = input {
    print(text.count)
}

添加其他分支

您可以添加 else,以明确处理 nil 的情况。

let age: Int? = nil
if let a = age {
    print("Age is \(a)")
} else {
    print("No age provided")
}

简写绑定

从 Swift 5.7 开始,如果新常量与可选值同名,就可以只写 if let value,省略 = value 部分。

let score: Int? = 90
if let score {
    print(score)
}

简写形式与经典形式

简写形式 if let score 与 if let score = score 完全相同。当名称一致时,它可以减少重复。

let nickname: String? = "Sam"
if let nickname {
    print("Hi \(nickname)")
}

绑定的作用域

已解包的常量只存在于 if 主体内部。在外部,可选值仍然是可选值。

let maybe: Int? = 7
if let maybe {
    print(maybe + 1)
}
print(maybe as Any)

从转换中进行绑定

if let 与 Int(string) 这样的可失败转换非常适合搭配使用。

let raw = "42"
if let number = Int(raw) {
    print(number * 2)
} else {
    print("Not a number")
}

绑定字典值

使用 if let 可以安全地读取可能不存在的字典值。

let ages = ["Ann": 30]
if let annAge = ages["Ann"] {
    print(annAge)
}
if let bobAge = ages["Bob"] {
    print(bobAge)
} else {
    print("Bob not found")
}

绑定可变副本

如果希望在本地修改已解包的值,请使用 if var。这种修改不会影响原始可选值。

let count: Int? = 10
if var c = count {
    c += 5
    print(c)
}

避免嵌套

您可以将依赖该值的逻辑安全地放在绑定代码块中,从而避免使用 ! 强制解包。

let name: String? = "Lia"
if let name {
    let upper = name.uppercased()
    print(upper)
}

为何不使用强制解包

如果可选值为 nil,使用 ! 强制解包会导致程序崩溃。if let 是一种 safe 的替代方案,不会引发这种崩溃。

let value: Int? = nil
if let value {
    print(value)
} else {
    print("Safe: was nil")
}

快速检查

测试可选值绑定。

回顾:if let 与简写绑定

if let 只会在值存在时,将可选值安全地解包为本地常量。Swift 5.7 中的简写形式 if let name 可以避免重复名称。请优先使用它,而不是强制解包。

let x: Int? = 3
if let x { print(x) }
免费开始

用 AI 导师学习 Swift — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
122
课程
409

常见问题解答

「if let 与简写绑定」课时是免费的吗?

是的 — 「if let 与简写绑定」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Swift Academy 课程的其余内容,请升级到 CoddyKit PRO。 Swift Academy 课程共包含 4 节课。

「if let 与简写绑定」这节课中我会学到什么?

在作用域内解包可选值,包括 Swift 5.7 的简写语法。 你通过在浏览器中直接运行的动手代码来练习 Swift Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Swift Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Swift Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「if let 与简写绑定」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Swift Academy 课中编写并运行代码吗?

能。每节 Swift Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. if let 与简写绑定
  2. 使用 guard let 提前退出
  3. 绑定多个可选值
  4. switch 与 for 中的可选模式
← 返回 Swift Academy