Ідіома для роботи з необов'язковими в 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's Option (яка в основному така ж ідея, як і Swift's необов'язково) має getOrElse
для цього метод :
val myValue = optionalValue.getOrElse(defaultValue)
Я щось пропускаю? У Swift вже є компактний спосіб зробити це? Або, якщо цього не зробити, чи можна визначити getOrElse
в розширенні для необов'язкового?