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