资料来源:Swift 中的 Guard
让我们看一个例子来清楚地理解它
示例 1:
func validate() {
guard 3>2 else {
print ("False")
return
}
print ("True") //True
}
validate()
在上面的示例中,我们看到 3 大于 2,并且跳过了 guard else 子句中的语句并打印了 True。
示例 2:
func validate() {
guard 1>2 else {
print ("False") //False
return
}
print ("True")
}
validate()
在上面的示例中,我们看到 1 小于 2,并且执行了 guard else 子句中的语句,并打印了 False,然后返回。
Example 3: gaurd let, unwrapping optionals through guard let
func getName(args myName: String?) {
guard let name = myName, !name.isEmpty else {
print ("Condition is false") // Condition is false return
}
print("Condition is met\(name)")
}
getName(args: "")
在上面的例子中,我们使用了 guard let 来解开选项。在函数 getName 中,我们定义了一个字符串 myName 类型的变量,它是可选的。然后我们使用guard let来检查变量myName是否为nil,如果没有赋值给name,再次检查,name不为空。如果两个条件都符合条件,即为真,则将跳过 else 块并打印“条件符合名称”。
基本上我们在这里检查用逗号分隔的两件事,首先是展开和可选,然后检查它是否满足条件。
在这里,我们没有向函数传递任何内容,即空字符串,因此条件为假是打印。
func getName(args myName: String?) {
guard let name = myName, !name.isEmpty else {
print ("Condition is false")
return
}
print("Condition is met \(name)") // Condition is met Hello
} getName(args: "Hello")
在这里,我们将“Hello”传递给函数,您可以看到输出打印“Condition is met Hello”。