Di Swift, bagaimana saya bisa menulis kasus dalam pernyataan switch yang menguji nilai yang dialihkan dengan konten opsional , melewati kasus jika opsional berisi nil
?
Begini cara saya membayangkan ini mungkin terlihat:
let someValue = 5
let someOptional: Int? = nil
switch someValue {
case someOptional:
// someOptional is non-nil, and someValue equals the unwrapped contents of someOptional
default:
// either, someOptional is nil, or someOptional is non-nil but someValue does not equal the unwrapped contents of someOptional
}
Jika saya hanya menulisnya persis seperti ini, kompilator mengeluh bahwa someOptional
tidak terbungkus, tetapi jika saya secara eksplisit membukanya dengan menambahkan di !
bagian akhir, saya tentu saja mendapatkan kesalahan runtime setiap saat someOptional
berisi nil
. Menambahkan ?
alih-alih !
akan masuk akal bagi saya (dalam semangat rangkaian opsional, saya kira), tetapi tidak membuat kesalahan kompiler hilang (yaitu tidak benar-benar membuka bungkus opsional).