使用 Guard

Version >= 2.0

Guard 檢查條件,如果為 false,則進入分支。防衛檢查分支機構必須通過 returnbreakcontinue(如適用)離開其封閉區塊; 如果不這樣做會導致編譯器錯誤。這樣做的好處是,當寫入 guard 時,不可能讓流量意外地繼續(就像使用 if 一樣)。

使用保護可以幫助保持較低的巢狀級別 ,這通常可以提高程式碼的可讀性。

func printNum(num: Int) {
    guard num == 10 else {
        print("num is not 10")
        return
    }
    print("num is 10")
}

Guard 還可以檢查是否有處於一個值可選 ,然後在外部範圍解開它:

func printOptionalNum(num: Int?) {
    guard let unwrappedNum = num else {
        print("num does not exist")
        return
    }
    print(unwrappedNum)
}

Guard 可以使用 where 關鍵字組合可選的展開和條件檢查:

func printOptionalNum(num: Int?) {
guard let unwrappedNum = num, unwrappedNum == 10 else {
    print("num does not exist or is not 10")
    return
}
print(unwrappedNum)
}