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