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