Swift Academy · 课时

可选值简介:?、nil、if let、guard let、??

了解可选值:使用 ? 声明,用 nil 表示缺失值,并通过 if let、guard let 和 ?? 解包。

第 3 / 3 课8 个步骤

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

什么是可选值?

可选类型表示一个可能存在、也可能为 nil 的值。在类型后添加 ? 即可将其设为可选类型。

  • 明确处理缺失情况
  • 避免许多崩溃

if let 绑定

使用 ? 声明可选类型,然后在值存在时使用 if let 安全地解包。

var nickname: String? = nil
print("nickname =", String(describing: nickname))

// Optional binding with if let
let input: String? = "Ada"
if let name = input {
    print("Hello, \\(name)")
} else {
    print("No name")
}

guard let

guard let 会进行解包,并在遇到 nil 时提前退出,从而让代码保持扁平且易读。

func greet(_ maybeName: String?) {
    guard let name = maybeName else {
        print("Missing name"); return
    }
    print("Hi, \\(name)!")
}
greet(nil)
greet("Grace")

空值合并(??)

使用 ??,可以在可选值为 nil 时提供默认值。

let provided: String? = nil
let username = provided ?? "Guest"
print("Username:", username)

可选链

可选链(?.)会在链中的任意一环为 nil 时停止继续调用。

struct Profile { var city: String? }
struct User { var profile: Profile? }

let u1 = User(profile: Profile(city: "Paris"))
let u2 = User(profile: nil)

// Optional chaining safely traverses missing links
print(u1.profile?.city?.uppercased() ?? "No city")  // "PARIS"
print(u2.profile?.city ?? "No city")                // "No city"

提示与常见问题

提示:

  • 除非您百分之百确定值不为 nil,否则请避免使用 !(强制解包)。
  • 为提高清晰度,优先使用 if let 或 guard let。
  • 使用 ?? 提供安全的默认值。

guard let 的行为

快速检查:guard let 会执行什么操作?

回顾

回顾:使用 ? 声明可选类型,使用 nil 表示缺失,通过 if let 或 guard let 解包,并使用 ?? 提供默认值。使用可选链可以安全地遍历调用链。

免费开始

用 AI 导师学习 Swift — 免费

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

课程
122
课程
409

常见问题解答

「可选值简介:?、nil、if let、guard let、??」课时是免费的吗?

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

「可选值简介:?、nil、if let、guard let、??」这节课中我会学到什么?

了解可选值:使用 ? 声明,用 nil 表示缺失值,并通过 if let、guard let 和 ?? 解包。 你通过在浏览器中直接运行的动手代码来练习 Swift Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Swift Academy 需要有经验吗?

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

「可选值简介:?、nil、if let、guard let、??」课时需要多长时间?

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

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

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

此课程中的所有课时

  1. let 与 var、类型推断、字面量、元组
  2. 核心类型:数字、Bool、String、Character
  3. 可选值简介:?、nil、if let、guard let、??
← 返回 Swift Academy