var number = 10
var bool = false
switch (number, bool) {
case (_, false):
print("bool is false")
case (10, _):
print("number is 10")
default:
print("whatever")
}
上面会打印“bool is false”
var number = 10
var bool = false
switch (number, bool) {
case (10, _):
print("number is 10")
case (_, false):
print("bool is false")
default:
print("whatever")
}
上面会打印“数字是10”
为了进一步测试这一点,我将default
案例移到了顶部并得到了:
错误:“默认”后无法显示其他“案例”块 阻止“开关”
问题:
这是标准的基金会行为吗?我看了library,但没有找到任何关于案件顺序的信息。
另外这是否意味着两个案件不能相同但可能重叠......而且只会先发生哪一种情况?
答案 0 :(得分:3)
switch
语句是Swift语言的一部分,而不是任何特定的库,是的,顺序很重要。
将switch语句视为一系列“if-then-else”语句的快捷方式可能会有所帮助。说我有以下声明:
switch(number) {
case (1):
do_something_for_one()
break
case (2):
do_something_for_two()
break
default:
do_something_for_default()
break
}
这在功能上等同于以下代码:
if(number == 1) {
do_something_for_one()
}
else if (number == 2) {
do_something_for_two()
}
else {
do_something_for_default()
}
您看到default
代表else
。在其他之后添加else if()
是没有意义的,因为它永远不会执行(else
'吃'输入)