Python“还是”等价于Swift?
由于Swift很酷的行为,我在Swift中寻找一个or
等价的东西。
像这样的东西:
variable = value or default
我编码我的 :
func |<T>(a:T?, b:T) -> T { if let a = a { return a } return b }
但我想知道是否有任何默认的实现已经在Swift中存在?
编辑:感谢答复,我发现在Swift书中的参考:
无合并操作员
nil合并运算符(
a ?? b
)打开一个可选的a(如果它包含一个值),或者如果a
为零,则返回一个默认值b
。 expression式a
始终是可选的types。 expression式b
必须匹配存储在a
中的types。零合并运算符是下面代码的简写:
a != nil ? a! : b
上面的代码使用三元条件运算符,并强制解包(
a!
)来访问当a
不为零时包装的值,否则返回b
。 nil合并运算符提供了一种更简洁的方式来以简明易懂的forms封装这个条件检查和解包。 ( 来源 )
使用??
:
var optional:String? var defaultValue:String = "VALUE" var myString:String = optional ?? defaultValue print(myString)
你可以使用nil合并操作符
let variable = optional ?? default