我的主力博客:半亩方塘
Making Decisions
1、Consider this code:
let number = 10 switch (number) { case let x where x % 2 == 0: print("Even") default: print("Odd") }
This will print the following:
Even
This switch statement uses thelet-whereSyntax,meaning the case will match only when a certain condition is true. In this example,you've designed the case to match if the value is even-that is,if the value modulo 2 equals 0.
The method by which you can match values based on conditions is known aspattern matching.
2、Another way you can useswitch
statements to great effect is as follows:
let coordinates: (x: Int,y: Int,z: Int) = (3,2,5) switch (coordinates) { case (0,0): print("Origin") case (_,0): print("On the x-axis.") case (0,_,0): print("On the y-axis.") case (0,_): print("On the z-axis.") default: print("Somewhere in space") }
You're using the underscore to mean that you don't care about the value. If you don't want to ignore the value,then you can use it in yourswitch
statement,like this:
let coordinates: (x: Int,0): print("Origin") case (let x,0): print("On the x-axis at x = \(x)") case (0,let y,0): print("On the y-axis at y = \(y)") case (0,let z): print("On the z-axis at z = \(z)") case (let x,let z): print("Somewhere in space at x = \(x),y = \(y),z = \(z)") }
let-where
Syntax you saw earlier to match more complex cases. For example:
let coordinates: (x: Int,5) switch(coordinates) { case (let x,_) where y == x: print("Along the y = x line.") case (let x,_) where y == x * x: print("Along the y = x^2 line.") default: break }原文链接:https://www.f2er.com/swift/324524.html