知识卡片

空合运算符是可选类型判空取值的语法糖

专业/工作 · 710

内容

a ?? b 等价于”若 [[Optional 用类型系统表达”值可能不存在”]] 的 a 有值就强制解包取值,否则返回默认值 b”(即 a != nil ? a! : b)的简写,把判空、解包、兜底默认值这三步操作压缩成一个符号。它和逻辑与/或运算符一样具有短路特性:一旦 a 非空,b 不会被求值,这意味着 b 可以是一个有副作用或开销较大的表达式而不必担心被无谓执行。这种”给可选值一个默认兜底”的模式在处理外部输入、配置项缺省值时非常常见。

参考来源

《Swift全解析:新式iOS实战开发》第3章《Swift基本运算符》