在Swift中,我如何在switch语句中编写一个case,该语句根据optional的内容测试被切换的值,如果可选值包含nil
,则跳过该case?
以下是我想象中的情况:
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
时,我当然会遇到运行时错误.添加?
而不是!
对我来说是有意义的(我想是出于可选链接的精神),但不会消除编译器错误(也就是说,实际上不会打开可选链接).