在Swift中检查选项的首选方法

wig*_*ing 1 optional swift

在使用Swift中的选项时,似乎有两种方法可以检查是否有可选类型nil.

var item: String? = "apple"

// Approach A
if item != nil {
    "item is \(item!)"
} else {
    "no item"
}

// Approach B
if let x = item {
    "item is " + x
} else {
    "no item"
}
Run Code Online (Sandbox Code Playgroud)

使用哪种方法检查可选项是否重要?

Ant*_*nio 5

它们是等价的,但最好使用:

  • let x = item (实际需要时,可选绑定)并使用未包装的值
  • item != nil当你只是需要知道它不是nil,但你不需要它的解包价值

通过可选绑定展开会产生成本,因此如果您不需要该值,则没有理由将其解压缩并分配给变量.另一方面,如果您需要该值,最好只通过可选绑定解包一次(并避免使用强制解包!)