if let 与简写绑定
在作用域内解包可选值,包括 Swift 5.7 的简写语法。
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 反馈 — 无需本地设置。
此课程中的所有课时
- if let 与简写绑定
- 使用 guard let 提前退出
- 绑定多个可选值
- switch 与 for 中的可选模式