Swift Optional的本质

时间:2021-6-7 作者:qvyue
  • 可选类型的本质: 其本质是enum类型
/// Optional的内部实现
public enum Optional : ExpressibleByNilLiteral {
    case none
    case some(Wrapped)
    
    public init(_ some: Wrapped)
}
func testOptional() {
    var age: Int? = 10 // 等价于 var age1: Optional = .some(10) var age = Optional(10)
    age = .some(10)
    age = nil // 等价于 age = .none
    var age1: Optional = .some(20)  // 等价于  age1 = Optional(20)
    // 可选的本质是枚举,所以可以用switch取值
    switch age {
    case .some(let a):
        debugPrint(a) // 20
    case .none:
        debugPrint("none")
    }
}
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。