【问题标题】:Python "or" equivalent in Swift?Swift中的Python“或”等价物?
【发布时间】:2014-11-23 18:55:00
【问题描述】:

由于 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 合并运算符 (a ?? b) 如果包含值,则展开可选的 a,如果 a 为 nil,则返回默认值 b。表达式a 始终是可选类型。表达式b 必须与存储在a 中的类型匹配。

nil 合并运算符是以下代码的简写:

    a != nil ? a! : b

上面的代码使用三元条件运算符和强制解包 (a!) 在 a 不为零时访问包裹在 a 中的值,否则返回 b。 nil 合并运算符提供了一种更优雅的方式来以简洁易读的形式封装这种条件检查和展开。 (source)

【问题讨论】:

    标签: python ios swift operators


    【解决方案1】:

    您可以使用 nil 合并运算符

    let variable = optional ?? default
    

    【讨论】:

      【解决方案2】:

      使用??:

      var optional:String?
      var defaultValue:String = "VALUE"
      
      var myString:String = optional ?? defaultValue
      
      print(myString)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多