Ungkapan untuk berurusan dengan opsional di Swift tampaknya terlalu banyak bertele-tele, jika semua yang ingin Anda lakukan adalah memberikan nilai default dalam kasus di mana nihil:
if let value = optionalValue {
// do something with 'value'
} else {
// do the same thing with your default value
}
yang melibatkan duplikasi kode yang tidak perlu, atau
var unwrappedValue
if let value = optionalValue {
unwrappedValue = value
} else {
unwrappedValue = defaultValue
}
yang membutuhkan unwrappedValue
tidak konstan.
Opsi Scala's monad (yang pada dasarnya ide yang sama dengan Swift's Optional) memiliki metode getOrElse
untuk tujuan ini:
val myValue = optionalValue.getOrElse(defaultValue)
Apakah saya melewatkan sesuatu? Apakah Swift sudah memiliki cara yang kompak untuk melakukannya? Atau, jika gagal, apakah mungkin untuk mendefinisikan getOrElse
ekstensi untuk Opsional?