一个Optional其实就是一个enum
enumOptional<T>{ caseNone caseSome(T) }
比如:
letx:String?=nil
其实就是
letx=Optional<String>.None
而
letx:String?="Hello"
就是
letx=Optional<String>.Some("Hello")
将x拆包:
vary=x!
等同于:
switchx{ caseSome(letvalue):y=value caseNone://抛出异常 }