1. Swift 中 Dictionary 的默认值

let planets = [1: "Mercury", 2: "Venus"]
let venus = planets[2, default: "Planet X"]

Swift 的 Dictionary 在取值时,可以加默认值。就像上面这样。

大概类似于:

let venus = planets[2] ?? "Planet X"

2. Swift Switch 的fallthrough

switch weather {
case "rain":
    print("Bring an umbrella")
case "snow":
    print("Wrap up warm")
case "sunny":
    print("Wear sunscreen")
    fallthrough
default:
    print("Enjoy your day!")
}
// will print "Enjoy your day!"

Swift 的 Switch 语句,如果希望当前case执行完后,还希望继续执行,就像C中的switch语句一样, 就可以用fallthrough来标记。

3. 循环标记

在Swift中,break只能退出单个循环,想退出多个循环怎么办呢?可以给某个循环以标记,可以使用break语句退出该循环。

outerLoop: for i in 1...10 {
    for j in 1...10 {
        let product = i * j
        print ("\(i) * \(j) is \(product)")

        if product == 50 {
            print("It's a bullseye!")
            break outerLoop
        }
    }
}

4. 如果要struct的方法需要修改struct内部的变量值, 该方法需要用mutating标记

5. shuffled

Swift 为 Array提供了shuffled方法,可以返回经过洗牌的数组。

var countries = ["Estonia", "France", "Germany", "Ireland", "Italy", "Nigeria", "Poland", "Russia", "Spain", "UK", "US"].shuffled()