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 someOptionalnicht ausgepackt ist, aber wenn ich unwrap es ausdrücklich durch Zugabe !bis zum Ende, ich natürlich einen Laufzeitfehler erhalten jederzeit someOptionalenthä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).