由于Swift很酷的行为,我在Swift中寻找or
等价物。
这样的事情:
variable = value or default
我编码mine:
func |<T>(a:T?, b:T) -> T {
if let a = a {
return a
}
return b
}
但我想知道Swift中是否存在任何默认实现?
编辑: 感谢答案,我在Swift书中找到了参考文献:
Nil Coalescing Operator
nil合并运算符(
a ?? b
)如果包含值,则展开可选a;如果b
为nil,则返回默认值a
。表达式a
始终是可选类型。表达式b
必须与a
中存储的类型匹配。nil coalescing运算符是下面代码的简写:
a != nil ? a! : b
上面的代码使用三元条件运算符并强制解包(
a!
)以在a
不为零时访问a
内包含的值,并返回b
除此以外。 nil合并运算符提供了一种更简洁的方式来以简洁易读的形式封装此条件检查和展开。 (source)
答案 0 :(得分:5)
使用??
:
var optional:String?
var defaultValue:String = "VALUE"
var myString:String = optional ?? defaultValue
print(myString)
答案 1 :(得分:4)
您可以使用nil合并运算符
let variable = optional ?? default