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

What does the "Some" keyword in the Xcode console mean?

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

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

这个关键词是什么意思;它为什么在那里?

Optional is an enum with two cases, none, and some(wrapped):

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

如您所见,Optional 的值为 Some,具有关联值(Optional 包含的值),或者 NoneOptional.None其实就是nil.

的意思

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

在Swift3之前,这些情况都是大写的,SomeNone.