打印对象的描述会使lldb在对象的描述前面使用关键字"Some"(这里我是一个可选的字符串):
(lldb) po someString
Optional<String>
- Some: "Hello Jupiter"
Run Code Online (Sandbox Code Playgroud)
这个关键字是什么意思; 为什么会这样?
Ale*_*ica 11
Optional是一个enum有两种情况,none以及some(wrapped):
enum Optional<Wrapped> {
case some(Wrapped)
case none
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,Optional要么具有值Some,具有关联值(Optional包装的值),或者None.Optional.None实际上就是这个意思nil.
在这种情况下,调试器告诉你这someString是一个Optional<String>(aka String?),其值为Optional.Some("Hello Jupiter").它不是Optional.None,因此它不是nil.
在Swift 3之前,这些案例都是大写的,Some而且None.
| 归档时间: |
|
| 查看次数: |
4337 次 |
| 最近记录: |