使用 Guard
Version >= 2.0
Guard 檢查條件,如果為 false,則進入分支。防衛檢查分支機構必須通過 return
,break
或 continue
(如適用)離開其封閉區塊; 如果不這樣做會導致編譯器錯誤。這樣做的好處是,當寫入 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)
}