编译错误,代码类似于以下示例:
func test(first: Bool, second: Bool) -> Bool {
switch (first, second) {
case (true, true):
return true
case (true, false):
return false
case (false, _):
return false
}
}
错误:切换必须是详尽的,请考虑添加默认子句
但是,涵盖了所有可能的情况。有没有人知道解决方案而不添加不必要的默认情况?
答案 0 :(得分:-1)
编辑:
按此顺序生成代码将满足编译器。
func test(first: Bool, second: Bool) -> String {
switch (first, second) {
case (true, true):
return "True, true"
case (false, _):
return "false, _"
case (true, false):
return "true, false"
}
答案 1 :(得分:-5)
default:
print("This is the default case")
}
哟必须将它包含在你的switch语句中
每个switch语句都必须是详尽无遗的。也就是说,所考虑类型的每个可能值必须与其中一个开关案例匹配。如果为每个可能的值提供案例是不合适的,则可以定义默认案例以涵盖未明确解决的任何值。此默认情况由默认关键字表示,并且必须始终显示在最后。
切换声明必须是详尽的
在Swift中,控件表达式的每个可能值都必须 匹配案例的至少一个模式的值。当这简单 是不可行的(例如,当控制表达式的类型是 Int),您可以包含一个默认案例来满足要求。