Идиома для работы с опциями в 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 Вариант monad (который в основном представляет ту же идею, что и Swift Необязательно) имеет для этого метод getOrElse
:
val myValue = optionalValue.getOrElse(defaultValue)
Я что-то упустил? У Swift есть компактный способ сделать это уже? Или, если это невозможно, можно ли определить getOrElse
в расширении для необязательного?