Swift 提供所有多樣化的控制流語句。包括 while 循環來多次執行任務; if 、guard、switch 語句來基於特定的條件執行不同的代碼分支;還有比如 break 和 continue 語句來傳遞執行流到你代碼的另一個點上。
下面羅列出了 Swift 中的控制流的一些關鍵字:
- For in 循環
- While 循環
- Repeat - While
- If
- Switch
- Where
- continue
- break
- fallthrough
- return
- throw
- guard
guard 語句,類似於 if 語句,基於布爾值表達式來執行語句。使用 guard 語句來要求一個條件必須是真才能執行 guard 之後的語句。與 if 語句不同,guard 語句總是有一個 else 分句 – else 分句裏的代碼會在條件不爲真的時候執行。
例如:
func guardString(name:String){
guard name.count > 0 else {
print("輸入name爲空")
return
}
print("guardString==\(name)")
}
guardString(name: "")
//輸出:輸入name爲空
如果 guard 語句的條件被滿足,代碼會繼續執行直到 guard 語句後的花括號。任何在條件中使用可選項綁定而賦值的變量或者常量在 guard 所在的代碼塊中隨後的代碼裏都是可用的。
如果這個條件沒有被滿足,那麼在 else 分支裏的代碼就會被執行。這個分支必須轉移控制結束 guard 所在的代碼塊。要這麼做可以使用控制轉移語句比如 return , break , continue 或者 throw ,或者它可以調用一個不帶有返回值的函數或者方法,比如 fatalError() 。
相對於使用 if 語句來做同樣的事情,爲需求使用 guard 語句來提升你代碼的穩定性。它會讓正常地寫代碼而不用把它們包裹進 else 代碼塊,並且它允許你保留在需求之後處理危險的需求。