Swift开关匹配多个条件

时间:2018-01-19 21:14:22

标签: swift switch-statement

由于case:阻止自动中断,Swift提供了fallthrough关键字。这是有限的用途,因为它没有通过下一个条件测试,它绕过下一个测试,只是执行下一个测试的代码。是否可以让switch语句在多种情况下执行代码同时执行条件?

作为Swift文档的一个例子,如果我需要下面的代码来执行适用于给定点的每个块,该怎么办?

let somePoint = (0, 0)
switch somePoint {
case (0, 0):
    print("\(somePoint) is at the origin")
case (_, 0):
    print("\(somePoint) is on the x-axis")
case (0, _):
    print("\(somePoint) is on the y-axis")
case (-2...2, -2...2):
    print("\(somePoint) is inside the box")
default:
    print("\(somePoint) is outside of the box")
}

如上所述,即使多个实际应用,它也只会打印第一个描述。在每次测试后使用fallthrough会导致每个case块执行。

1 个答案:

答案 0 :(得分:2)

switch语句将值与模式进行比较并执行 基于第一次成功比赛的代码。

如果您打算匹配多个模式并执行 所有匹配的代码然后使用多个if语句。 可以使用相同的案例模式:

./bin/webpack-dev-server --max_old_space_size=4096