温馨提示:本文最后更新于
2024-07-25 18:30:41
,某些文章具有时效性,若有错误或已失效,请在下方留言。guard
语句的主要用法有以下几种:
- 提前返回
- 减少缩进级别
- 高Happy Path可见性
提前返回
guard
用于提前返回,如果某些先决条件未满足,则退出函数。
func giveAward(to name: String) {
guard name == "Taylor Swift" else {
print("No way!")
return
}
print("Congratulations, \(name)!")
}
giveAward(to: "Taylor Swift")
减少缩进级别
使用 guard
和提前返回可以减少缩进级别。下面的代码主题部分会增加额外的缩进。
func giveAward(to name: String) -> String {
let message: String
if name == "Taylor Swift" {
message = "Congratulations, \(name)!"
} else {
message = "No way!"
}
return message
}
giveAward(to: "Taylor Swift")
使用 guard
时,您可以立即解决先决条件,并且不会出现额外的缩进。
提高Happy Path可见性
Happy Path
是软件设计和测试中的一个常见概念,指的是当没有异常或错误发生时,您的代码将采取的路径。
当您使用 guard
检查并解除可选值时,该可选值将保留在作用域中。
func giveAward(to name: String?) {
guard let winner = name else {
print("No one won the award")
return
}
print("Congratulations, \(winner)!")
}
如果使用常规的 if-let
, winner
常量只能在属于 guard
的大括号内使用。 但是, guard
将其可选的解包保持在作用域内,因此 winner
在第二个 print() 语句中仍然存在。
guard
可以在前提条件失败时退出任何作用域,而不仅仅是函数和方法。
for i in 1...100 {
guard i % 8 == 0 else { continue }
print(i)
}
— 《Pro Swift》
© 版权声明
THE END
暂无评论内容