1,420
社区成员
发帖
与我相关
我的任务
分享
enum Optional<T> : LogicValue, Reflectable {
case None
case Some(T)
init()
init(_ some: T)
/// Allow use in a Boolean context.
func getLogicValue() -> Bool
/// Haskell's fmap, which was mis-named
func map<U>(f: (T) -> U) -> U?
func getMirror() -> Mirror
}
可以看到,它有两个枚举值,一个None,一个Some. 当值为nil时其实就是 Optional.None. 非nil 时为Optional.Some,并被Some(T) 包装(wrap)原始值,这也是为什么在使用Optional的时候要拆包的原因