swift之switch续(元组,值绑定,where)

最后更新于:2022-04-01 11:39:42

~~~ import Foundation let point = (2, 2) switch point { case (0, 0): print("point is (0, 0)") case (_, 0): //_匹配所有可能的值 print("point is (_, 0)") case (0, _): print("point is (0, _)") case (0...3, 0...3): print("point is the scope of (0...3, 0...3)") default: print("not in the scope of ... ") } //值绑定 //case 分⽀的模式允许将匹配的值绑定到⼀个临时的常量或变量,这些常量或变量在该 //case 分⽀⾥就可以被引⽤了——这种⾏为被称为值绑定(value binding)。 let anotherPoint = (2, 0) switch anotherPoint { case (let x, 0): //匹配纵坐标是0的点,并将横坐标的值赋予x,下同 print("on the x-axis with an x value of \(x)") case (0, let y): print("on the y-axis with a y value of \(y)") case let (x, y): //匹配所有 print("somewhere else at (\(x), \(y))") } //case分支的模式可以使用where语句来判断额外的条件 let yetAnotherPoint = (1, -1) switch yetAnotherPoint { case let (x, y) where x == y: //匹配x等于y的所有情况,下同 print("(\(x), \(y)) is on the line x == y") case let (x, y) where x == -y: print("(\(x), \(y)) is on the line x == -y") case let (x, y): print("(\(x), \(y)) is just some arbitrary point") } ~~~ 输出: ~~~ point is the scope of (0...3, 0...3) on the x-axis with an x value of 2 (1, -1) is on the line x == -y Program ended with exit code: 0 ~~~
';