Python"或"相当于Swift?

时间:2014-09-29 11:32:17

标签: python ios swift operators

由于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

2 个答案:

答案 0 :(得分:5)

使用??

var optional:String?
var defaultValue:String = "VALUE"

var myString:String = optional ?? defaultValue

print(myString)

答案 1 :(得分:4)

您可以使用nil合并运算符

let variable = optional ?? default