Swift 中 ?? (空合运算符) 的作用是什么?

· 约 2 分钟读完 · 第 15 / 196 章

推荐答案

在 Swift 中,?? 是空合运算符(Nil-Coalescing Operator),用于提供默认值。它的作用是在可选值为 nil 时,返回一个默认值,否则返回解包后的可选值。

本题详细解读

语法

  • a 是一个可选值(Optional)。
  • b 是一个非可选值,且类型与 a 解包后的类型一致。

工作原理

  • 如果 a 不是 nil,则返回 a!(即解包后的值)。
  • 如果 a 是 nil,则返回 b。

示例

在这个例子中,optionalValue 是 nil,所以 ?? 运算符返回了 defaultValue,即 10。

等价代码

空合运算符 ?? 可以等价于以下代码:

这种写法更加简洁,减少了代码的冗余。

注意事项

  • ?? 运算符的优先级较低,因此在复杂表达式中使用时,可能需要使用括号来明确优先级。
  • b 的类型必须与 a 解包后的类型一致,否则编译器会报错。

应用场景

  • 在处理可选值时,避免强制解包(!)导致的运行时崩溃。
  • 在需要提供默认值的场景中,简化代码逻辑。