美文网首页
Swift 可选类型的本质

Swift 可选类型的本质

作者: 诗颜语 | 来源:发表于2022-05-07 16:01 被阅读0次

在【基础-可选类型】中提到过,可以把可选类型看成是一个特殊的类型,只有两种情况: 有值(Optional)、无值(nil) 。

其实本质与这种说法类似 - 可选类型 是名为Optional的枚举类型,以下摘自xcode,删去了注释

@frozen public enum Optional<Wrapped> : ExpressibleByNilLiteral {

    case none

    case some(Wrapped)

    public init(_ some: Wrapped)

}

*如果觉得这个枚举类型奇怪,请看 【基础-枚举】章节

发现了这个之后基本可以确定 问号?这种形式,是语法糖,为了简化书写

所以以下写法也成立

var title: String? = "baidu"

    

    var title2: Optional<String> = Optional<String>.some("baidu")

    var title3: Optional = Optional<String>.some("baidu")

    var title4: Optional = Optional.some("baidu")

    var title5: Optional = .some("baidu")

    var title6 = Optional.some("baidu")



    var text: String?

    var text1: String? = nil



    var text2: Optional<String> = Optional<String>.none

    var text3: Optional = Optional<String>.none

    var text4 = Optional<String>.none


这里要注意

  var title6 = Optional.some("baidu")

title6可以忽略类型<String>是因为编译器可以类型推断,但

var text4 = Optional<String>.none

text4 不可以忽略,因为.none 无法进行类型推断;

相关文章

网友评论

      本文标题:Swift 可选类型的本质

      本文链接:https://www.haomeiwen.com/subject/ywvtertx.html