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

问题描述:

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

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" 
} 

请问我用哪种方法检查可选项?

+0

没有。为什么这很重要? – CodaFi 2014-11-01 20:23:53

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

  • let x = item(可选绑定)时,你实际需要和使用展开的值
  • item != nil当你只需要知道,如果它不是nil,但你不需要它的解包值

通过可选绑定解包有成本,所以如果你不需要的值没有理由提取它并分配给一个变量。另一方面,如果您需要该值,则通过可选绑定仅解包一次会更好(并避免使用强制解包!

选项一评估您的选项是否为空,并允许您自动解包它使用感叹号。

第二个选项将可选值绑定到指定变量,如果您的可选项不为null。

看看这样说:

对于选项A,该系统具有解开可选的两倍。一次检查是否不为零,并且一次处理!

使用选项B,系统只需在执行任务时打开可选件一次。

在任何特定情况下,请使用减少编译器打开可选项的次数的代码。