手动展开与使用Optionals进行展开

时间:2015-01-17 23:07:55

标签: swift optional

在Swift中处理可选项时,有两种不同的方法可以访问可选项后面的值(如果存在)。您可以进行手动检查:

if someOptional != nil {
    doSomethingWithValue(someOptional!)
}
else {
    //handle nil...
}

或者,您可以使用if let块自动解包该选项:

if let unwrapped = someOptional {
    doSomethingWithValue(unwrapped)
}
else {
    //handle nil...
}

这些选项中的一个是出于任何原因而优于另一个吗?其中哪一个更具惯用性?

编辑:为了回应近距离投票,我试图询问是否有理由因为出于性能原因,安全原因或某事而出于偏好以外的任何原因而使用其他原因其他

1 个答案:

答案 0 :(得分:0)

我认为你在"手动检查"中错过了一行代码:在检查之前

  

如果someOptional!= nil

你不得不通过以下方式分配:

someOptinal : <TypeOptional>? = anyFunctionThatProvidesAnOptional

因此我认为:第二种方式(所谓的&#34;可选绑定&#34;)将这两条线组合在一条线上,因此它更短,因此更好。