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