移动端开发

Swift 可选值保底值便捷写法

2020-09-27  本文已影响0人  shidaying

常规写法

可选值为了不报错,会给个保底值, 避免取不到值

let name: String?
let someValue = name ?? ""

这样写没问题,但是比较繁琐, 不够清晰明了

简便写法

extension Swift.Optional  {    
    /// 返回可选值内容,或是默认值
    /// - Parameter default: 默认值
    func or(_ default: Wrapped) -> Wrapped {
        return self ?? `default`
    }
}

上面例子就可改为

let name: String?
let someValue = name.or("")

判断可选值是否为空

每次都要写 是否等于 nil, 也有点麻烦

let name: String?
if name == nil {  }

和问题二有点相似,也可以加个扩展方法

extension Swift.Optional  {    
    /// 是否为nil
    var isNil: Bool {
        switch self {
        case .none:
            return true
        case .some:
            return false
        }
    }
}

上面的判断就可以写为

if name.isNil {  }
上一篇 下一篇

猜你喜欢

热点阅读