1、Swift 无需写break,所以不会发生这种贯穿(fallthrough)的情况。2、//用不到变量名,可用“_”替换
3、case 可以匹配更多的类型模式,包括区间匹配(range matching),元组(tuple)和特定类型的描述。
可以这样用case
4、如果存在多个匹配,那么只会执行第一个被匹配到的 case 分支,剩下的能够匹配的 case 分支都会被忽视掉。
5、case值绑定,此例子都没必要用default
6、//当且仅当where语句的条件为true时,匹配到的 case 分支才会被执行。
for _ in 1...power
{
answer *= base
}
3、case 可以匹配更多的类型模式,包括区间匹配(range matching),元组(tuple)和特定类型的描述。
可以这样用case
case 1...3:
naturalCount = "a few"
4、如果存在多个匹配,那么只会执行第一个被匹配到的 case 分支,剩下的能够匹配的 case 分支都会被忽视掉。
5、case值绑定,此例子都没必要用default
let anotherPoint = (2, 0)
switch anotherPoint {
case (let x, 0):
println("on the x-axis with an x value of \(x)")
case (0, let y):
println("on the y-axis with a y value of \(y)")
case let (x, y):
println("somewhere else at (\(x), \(y))") } // 输出 "on the x-axis with an x value of 2"
6、//当且仅当where语句的条件为true时,匹配到的 case 分支才会被执行。
let yetAnotherPoint = (1, -1)
switch yetAnotherPoint
{
case let (x, y)where x == y:
println("(\(x), \(y)) is on the line x == y")
case let (x, y) where x == -y:
println("(\(x), \(y)) is on the line x == -y")
case let (x, y):
println("(\(x), \(y)) is just some arbitrary point")
} // 输出 "(1, -1) is on the line x == -y"
2014年07月03日