苹果公司的文档中提到:
每个switch语句都必须是穷尽的,也就是说,考虑到类型的每种可能值都必须有一个对应的case。
因此,在新版 Xcode 中,我放置了类似这样的代码:
println(UInt16.min); // Output : '0'
println(UInt16.max); // Output : '65535'
var quantity : UInt16 = 10;
switch quantity {
case 0...65535: //OR case UInt16.min...UInt16.max:
println();
default:
println();
}
现在,如果我删除默认部分,我会得到一个编译器错误:
Switch must be exhaustive
Do you want to add missing cases? Fix
所以我的问题是,对于我已经提到的 case 0...65535:
,我没有提到所有 UInt16
的情况吗?但我仍然会得到一个错误?为什么会出现这个错误?我错过了什么吗?