在下面的比较语句中比较元组,我希望它打印“点在X轴”和“在测试范围内”,但是它在第一个匹配的情况下打印所有的东西。也许我误会了,但我想,在迅捷,落网允许你继续检查案件时,你进入一个案件?

let switchPoint = (1,0)
switch switchPoint
{
    case (0,0):
        print("origin")
        fallthrough
    case (_,0):
        print("point is on x axis")
        fallthrough
    case (0,_):
        print("point is on y axis")
        fallthrough
    case (-2...2, -2...2):
        print("within test bounds")
        fallthrough
    default: print("outside test bounds")
}

最佳答案

从apple的documentation on fallthrough:“fallthrough语句导致程序执行从switch语句中的一种情况继续到下一种情况。即使case标签的模式与switch语句的控制表达式的值不匹配,程序仍将继续执行下一个case。”
所以快速的失败符合C行为。

10-08 12:25