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 等。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP