Xcode控制台中的“Some”关键字是什么意思?

时间:2016-07-05 13:08:14

标签: xcode swift lldb

打印对象的描述会使lldb在对象的描述前面使用关键字“Some”(这里我是一个可选的字符串):

(lldb) po someString
Optional<String>
 - Some: "Hello Jupiter"

此关键字的含义是什么;为什么会这样?

1 个答案:

答案 0 :(得分:10)

Optional是一个enum,有两个案例nonesome(wrapped)

enum Optional<Wrapped> {
    case some(Wrapped)
    case none
}

正如您所看到的,Optional的值为Some,具有关联值(Optional包裹的值)或NoneOptional.None实际上是nil的含义。

在这种情况下,调试器会告诉您someStringOptional<String>(a.k.a。String?),其值为Optional.Some("Hello Jupiter")。它不是Optional.None,因此它不是nil

在Swift 3之前,这些案例都是大写的,SomeNone