在Swift中处理选项的习惯用法似乎过于冗长,如果你想做的就是在nil的情况下提供一个默认值:
if let value = optionalValue {
// do something with 'value'
} else {
// do the same thing with your default value
}
Run Code Online (Sandbox Code Playgroud)
这涉及不必要地复制代码,或
var unwrappedValue
if let value = optionalValue {
unwrappedValue = value
} else {
unwrappedValue = defaultValue
}
Run Code Online (Sandbox Code Playgroud)
这unwrappedValue不一定是常数.
Scala的Option monad(与Swift的Optional基本相同)具有getOrElse用于此目的的方法:
val myValue = optionalValue.getOrElse(defaultValue)
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?斯威夫特有一个紧凑的方式吗?或者,如果失败,是否可以getOrElse在可选的扩展中定义?