一个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://抛出异常
}