由于Swift很酷的行为,我在Swift中寻找相当于or
的行为。Python“或”在Swift中相当于?
事情是这样的:
variable = value or default
我编写mine:
func |<T>(a:T?, b:T) -> T {
if let a = a {
return a
}
return b
}
但我在想,如果这个任何默认实现斯威夫特已经存在?
编辑: 感谢答案,我发现在斯威夫特书参考:
无合并运算
的零合并运算(
a ?? b
)解开任意一个,如果它包含一个值如果a
为零,则返回默认值b
。表达式a
始终是可选类型。表达式b
必须与存储在a
中的类型匹配。的零合并运算符是简写代码如下:
a != nil ? a! : b
上面的代码使用三元条件运算符和强迫展开(
a!
)来访问包装内部a
值时a
不是nil,和否则返回b
。 nil合并运算符提供了一种更简洁的方式来以简明易读的形式封装这个条件检查和解包。 (source)