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

空合运算符(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"

猜你喜欢

转载自www.cnblogs.com/miaolegewangde/p/11590356.html