在swift中有条件地为变量赋值的最佳方法

Tem*_*Dev 1 swift swift3

我经常在swift中遇到一个场景,如果一个可选项不是nil我希望将它分配给var,否则将var设为默认值.我希望将结果保留在实现的最外层.

var value:String
if let temp = someOptionalField {
    value = temp
} else {
    value = someDefaultValue
}
Run Code Online (Sandbox Code Playgroud)

上述陈述似乎过于迅速,因为"临时"是相当无价值的.另一方面,制作如下所述的if语句似乎也不"太快",因为获取'someDefaultField'可能是一个昂贵的过程

var value:String
if someOptionalField != nil {
    value = someOptionalField!
} else {
    value = someDefaultValue
}
Run Code Online (Sandbox Code Playgroud)

获取条件变量或将其分配给默认值同时将最终结果保留在最外层范围内的最快捷方式是什么?有时我会使用下面的语句,但我觉得使用'== nil'并没有利用swift可选设计

var value:String? = someOptionalField
if value == nil {
    value = someDefaultValue
}
Run Code Online (Sandbox Code Playgroud)

Cod*_*ent 7

使用nil-coalescing运算符:

let value = someOptionalField ?? someDefaultValue
Run Code Online (Sandbox Code Playgroud)

如果someOptionalField是nil,它会自动分配valuesomeDefaultValue