斯坦福Swift基础一(可选类型)
一个Optional其实就是一个enum
enum Optional<T> { case None case Some(T) }
比如:
let x:String? = nil
其实就是
let x = Optional<String>.None
而
let x:String? = "Hello"
就是
let x = Optional<String>.Some("Hello")
将x拆包:
var y = x!
等同于:
switch x { case Some(let value) : y = value case None : //抛出异常 }