Menu
CoddyTech

空合并运算符

本课属于 Coddy Swift 学习旅程的“基础知识”单元。第 14 课,共 86 课。

有时,如果可选值为 nil,你只想提供一个默认值,而不想写多行代码。Swift 的空合并运算符(??)正好可以做到这一点。如果可选值有值,它就会解包;如果值为 nil,则返回默认值。

let nickname: String? = nil
let displayName = nickname ?? "Guest"
print(displayName) // Guest

由于 nickname 是 nil,因此运算符会返回 "Guest"。如果 nickname 有值,就会使用该值。

let username: String? = "SwiftCoder"
let greeting = username ?? "Anonymous"
print(greeting) // SwiftCoder

nil 合并运算符非常适合需要备用值的单行代码。只想用默认值替换 nil 时,它比编写 if let 语句更简洁。如果默认值不是可选值,结果也不是可选值,因此你可以直接使用它,无需进一步解包。

challenge icon

挑战

简单
编写一个函数 getDisplayName,它接收一个可选的 username 和一个 defaultName,然后使用 nil 合并运算符返回合适的显示名称。

如果用户名为空(用空字符串 "" 表示),就将其视为 nil 并返回默认名称。否则,返回用户名。

参数:

  • username(String):用户的名称(空字符串表示 nil)
  • defaultName(String):要使用的备用名称

返回值:如果用户名不为空,则返回用户名;否则返回 defaultName。

提示:在函数中,将用户名存储在一个 String? 变量中。如果用户名等于 "",就使用简单的 if 将该变量设为 nil。然后使用 ?? 提供备用值。

亲手试试

func getDisplayName(username: String, defaultName: String) -> String {
    // 在这里编写代码
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Swift 在线编辑器