Wie kann ich in Swift einen Fall in eine switch-Anweisung schreiben, die den Wert, der umgeschaltet wird, mit dem Inhalt einer Option vergleicht und den Fall überspringt, wenn die Option enthält nil
?
So stelle ich mir das vor:
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
}
Wenn ich es nur schreiben genau so, beschwert sich der Compiler , dass someOptional
nicht ausgepackt ist, aber wenn ich unwrap es ausdrücklich durch Zugabe !
bis zum Ende, ich natürlich einen Laufzeitfehler erhalten jederzeit someOptional
enthält nil
. Das Hinzufügen ?
statt !
würde für mich einen Sinn ergeben (im Geiste der optionalen Verkettung, nehme ich an), lässt aber den Compilerfehler nicht verschwinden (dh das optionale nicht auspacken).