Swift 可选值保底值便捷写法

常规写法

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

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 {  }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。