空合运算符(Nil Coalescing Operator)

空合运算符(a??b)将对可选类型a进行空判断,如果a包含一个值就进行解封,否则就返回一个默认值b,这个运算符有两个条件

. 表达式a 必须是optional类型

.默认值b的类型必须要和a存储值的类型保持一致

空合运算符是对以下代码的简短表达方法

a  !=  nil ? a! : b

代码解释:当可选类型a的值不为空时,进行强制解封(a!)访问a中的值;反之,当a中值为空时,返回默认值b。


注意:如果a为非空(non-nil),那么值b将不会被估值,这也就时所谓的短路求值

eg:

下面代码实现了默认颜色 和可选自定义颜色名之间的抉择

let defaultColorName = "red"

var userDefinedColorName:String? //默认值为nil

  var colorNameToUse = userDefinedColorName??defaultColorName

//userDefinedColorName 的值为空,所以colorNameToUse的值为"red"

如果userDefinedColorName:String 不为nil  ,colorNameToUse则为userDefinedColorName解包后的值

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容