В Swift, как я могу написать случай в инструкции switch, которая проверяет значение, которое переключается на содержимое опционального, пропуская регистр, если опция содержит nil
?
Вот как я могу себе представить, что это может выглядеть:
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
}
Если я просто напишу это точно так, компилятор жалуется, что someOptional
не разворачивается, но если я явным образом развожу его, добавив !
в конец, я, конечно же, получу ошибку времени выполнения someOptional
содержит nil
. Добавление ?
вместо !
мне показалось бы (в духе необязательной цепочки, я полагаю), но не исключает ошибки компилятора (т.е. Фактически не разворачивает необязательный).