1、Swift 无需写break,所以不会发生这种贯穿(fallthrough)的情况。2、//用不到变量名,可用“_”替换
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日
时间: 2024-10-03 14:14:53