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