【发布时间】:2014-06-30 01:21:07
【问题描述】:
Swift 编程指南说“您还可以使用带有可选绑定的隐式解包选项,在单个语句中检查和解包它的值”。当值已经解包时,为什么需要使用可选绑定?选项绑定会再次解包吗?
【问题讨论】:
Swift 编程指南说“您还可以使用带有可选绑定的隐式解包选项,在单个语句中检查和解包它的值”。当值已经解包时,为什么需要使用可选绑定?选项绑定会再次解包吗?
【问题讨论】:
调用隐式展开与使用 ! 调用常规可选项相同在它之后。它仍然可以保存一个 nil 值,当它为 nil 时调用它会导致运行时错误,因此如果您不确定它是否为 nil,请使用 if let 可选绑定。
var myOptional: Int! = nil
10 + myOptional //runtime error
if let myUnwrapped = myOptional{
10 + myOptional //safe
}
【讨论】:
if let _ = myOptional { ... },因为你不打算使用 myUnwrapped
当值已经存在时,为什么还需要使用可选的绑定 展开
它没有已经打开了。隐式展开的可选项只是一个可选项。当在某些表达式(后缀表达式,可选绑定有效的相同表达式)中使用时,它会隐式展开。但除此之外,它只是一个可选的,而不是展开的。您可以像使用其他选项一样使用可选绑定。
【讨论】: