【发布时间】:2014-07-28 19:05:31
【问题描述】:
在 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 的 Optional 基本相同)为此使用了 getOrElse 方法:
val myValue = optionalValue.getOrElse(defaultValue)
我错过了什么吗? Swift 是否已经有一种紧凑的方式来做到这一点?或者,如果做不到这一点,是否可以在 Optional 的扩展中定义 getOrElse?
【问题讨论】: