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+ 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告