最佳答案
在 Swift 中,如何在 switch 语句中编写一个 case 来测试在 可以选择内容上切换的值,如果可选的值包含 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
时,我当然会得到一个运行时错误。添加 ?
而不是 !
对我来说是有意义的(我认为这是出于可选链接的精神) ,但是并不能消除编译器错误(也就是说实际上并不打开可选的)。