在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"
}
请问我用哪种方法检查可选项?
答
他们是等价的,但最好使用:
-
let x = item
(可选绑定)时,你实际需要和使用展开的值 -
item != nil
当你只需要知道,如果它不是nil
,但你不需要它的解包值
通过可选绑定解包有成本,所以如果你不需要的值没有理由提取它并分配给一个变量。另一方面,如果您需要该值,则通过可选绑定仅解包一次会更好(并避免使用强制解包!
)
答
选项一评估您的选项是否为空,并允许您自动解包它使用感叹号。
第二个选项将可选值绑定到指定变量,如果您的可选项不为null。
答
看看这样说:
对于选项A,该系统具有解开可选的两倍。一次检查是否不为零,并且一次处理!
。
使用选项B,系统只需在执行任务时打开可选件一次。
在任何特定情况下,请使用减少编译器打开可选项的次数的代码。
没有。为什么这很重要? – CodaFi 2014-11-01 20:23:53