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モナド(基本的にはSwiftのOptionalと同じ考え方です)には、getOrElse
この目的のためのメソッドがあります。
val myValue = optionalValue.getOrElse(defaultValue)
何か不足していますか?Swiftにはすでにコンパクトな方法がありますか?または、それが失敗した場合、getOrElse
オプションの拡張で定義することは可能ですか?