W języku Swift, w jaki sposób mogę napisać przypadek w instrukcji switch, która testuje przełączaną wartość względem zawartości opcjonalnej , pomijając wielkość liter, jeśli opcja zawiera nil
?
Oto jak to sobie wyobrażam:
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
}
Jeżeli po prostu napisać go dokładnie tak, kompilator narzeka, że someOptional
nie jest rozpakowany, ale gdybym nim wyraźnie unwrap dodając !
do końca, ja oczywiście się błąd wykonania o każdej porze someOptional
zawiera nil
. Dodanie ?
zamiast tego !
miałoby dla mnie jakiś sens (w duchu opcjonalnego łączenia w łańcuch, jak przypuszczam), ale nie usuwa błędu kompilatora (tj. Faktycznie nie rozpakowuje opcjonalnego).