Swift 中的 guard 語句是什麼?


在本教程中,您將學習什麼是 guard 語句以及如何在 Swift 語言中實現它。讓我們開始學習。

什麼是 guard 語句?

在 Swift 中,guard 是一個像 if-else 語句一樣在程式碼之間轉移控制的語句。guard 語句是 Swift 中最常用的語句之一。當某些條件不滿足以允許流程繼續時,guard 語句用於轉移流程控制。

guard 語句類似於 if 語句,但有一個主要區別。if 語句在滿足特定條件時執行。但是,guard 語句在不滿足特定條件時執行。

語法

guard expression else {
   // other statements
   // control statement: return, break, continue or throw.
}

在上面的語法中,表示式返回 true 或 false。如果表示式的值為

  • true − guard 不執行其程式碼塊內的語句

  • false − guard 執行其程式碼塊內的語句

注意 − 必須使用 return、break、continue 或 throw 來退出 guard 範圍。

示例

var i = 2 while (i <= 10) { // check the even number guard i % 2 == 0 else { i = i + 1 continue } print(i) i = i + 1 }

輸出

2
4
6
8
10

使用 guard 語句解包可選值

在 Swift 中,您可以像下面這樣解包可選變數中的值:

示例

func doSomething() { let name: String? = "Amit Saxena" guard let nameString = name else { print("name is not found") return } print("Name found: \(nameString)") } doSomething()

輸出

Name found: Amit Saxena

帶有多個條件的 guard 語句

語法

guard condition1, condition2, conditionN else {
   
   // statements
   return
}

guard 語句可用於檢查多個條件。如果滿足所有條件,則將執行進一步的程式碼;否則,將執行 guard 的主體並返回。

示例

class Student { var name: String? var age: Int? var address: String? func allDataValid() -> Bool { guard let nameString = name, let age = age, let address = address else { print("some data is not valid.") return false } print("Name: \(nameString), age: \(age), address: \(address)") return true } } let amit = Student() print(amit.allDataValid())

輸出

some data is not valid.
false

使用列舉情況的 Guard

也可以使用 guard 語句匹配列舉情況。您可以使用 guard 檢查列舉物件是否匹配所需的情況。

示例

enum ErrorState { case noInternet case serverNotReachable case somethingWrong case none } func perform(state: ErrorState) { guard case state = ErrorState.none else { print("Some error found, cannot execute further code.") return } print("No error found") } perform(state: ErrorState.serverNotReachable)

輸出

Some error found, cannot execute further code.

解釋

在上面的示例中,我們為 ErrorState 建立了一個具有不同情況的列舉。現在在 perform() 函式中,我們使用列舉情況檢查錯誤狀態,如果發現任何非 none 情況的錯誤,則返回。您可以看到 guard 語句在檢查不同條件方面有多麼靈活。

在 Swift 中使用 Guard 語句的好處

guard 語句對於使您的程式碼更易讀和更易維護非常有用。您應該使用 guard 語句的一些原因:

  • 它使程式碼試圖完成的任務變得清晰明瞭。與其告訴 guard 你不想要什麼,不如直接告訴他你想要什麼。

  • 該函式應該能夠檢測無效引數。

  • 透過使用 guard 解包可選值,使解包的值可用。

  • 減少程式碼行數。

結論

向您解釋了 Swift 中的 guard 語句。當出現某些情況時,guard 語句解決了程式碼可讀性的問題。使用 guard,可以以乾淨的方式編寫一段程式碼。此外,您可以學習其他語句,例如 if-else、switch 等。

更新於:2022年11月22日

3000+ 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.