在Swift中处理选项的习惯用法似乎过于冗长,如果您只想在值为零的情况下提供一个默认值:
if let value = optionalValue {
// do something with 'value'
} else {
// do the same thing with your default value
}
涉及不必要的代码复制,或者
var unwrappedValue
if let value = optionalValue {
unwrappedValue = value
} else {
unwrappedValue = defaultValue
}
这要求unwrappedValue
不是一个常数.
Scala的选项monad(与Swift的可选选项基本相同)具有用于此目的的方法getOrElse
:
val myValue = optionalValue.getOrElse(defaultValue)
我错过什么了吗?Swift 已经有了一个紧凑的方法来实现这一点吗?或者,如果做不到这一点,是否可以在可选的扩展中定义getOrElse
?