常规写法
可选值为了不报错,会给个保底值, 避免取不到值
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 { }
网友评论