ios swift中??空合运算符(Nil Coalescing Operator)

妖精的绣舞 提交于 2019-11-30 13:04:21

空合运算符(a ?? b)将对可选类型 a 进行空判断,如果 a 不为nil就返回,否则就返回一个默认值 b。表达式 a 必须是 Optional 类型。默认值 b 的类型必须要和 a 存储值的类型保持一致。

空合运算符a??b实际上是对如下三目运算的的简短表达方法

a != nil  ? a!:b

两者之间是等价的

例如:

let defaultColorName = "red"

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

var colorNameToUser =userDefinedColorName ?? defaultColorName

//userDefinedColorName 的值为空 所以 colorNameToUser的值为"red"

如果你分配一个非空值(non-nil)给 userDefinedColorName,再次执行空合运算,运算结果为封包在 userDefaultColorName 中的值,而非默认值。

userDefinedColorName = "green"

colorNameToUser =userDefinedColorName ?? defaultColorName

//userDefinedColorName 非空,因此colorNameToUser 的值为"green"

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!