在 Swift 中处理可选项的习惯用法似乎过于冗长,如果你想做的只是在它为 nil 的情况下提供一个默认值:
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 的 Option monad (和 Swift 的 Option 基本上是同一个概念)为此使用了 getOrElse
方法:
val myValue = optionalValue.getOrElse(defaultValue)
我错过了什么吗?斯威夫特已经有一个简洁的方法来做这件事了吗?或者,如果做不到这一点,是否有可能在可选的扩展中定义 getOrElse
?