仅了解Swiftguard
关键字,我想知道它将实现什么优势。
例如,假设我有以下代码:
func getEmail(email: String?) -> String {
guard email != "" else {
return ""
}
return email! + "@somewhere.com"
}
print(getEmail(email: "test123"))
我可以写...
if email == "" {
return ""
}
return email! + "@somewhere.com"
...也一样。
那么,使用保护关键字有什么好处?
只是有一点点语法糖吗?
我认为这不是使用Guard的很好示例,更常见的是将其与可能为nil(又称可选)的变量或可能返回nil的函数一起使用。我建议您阅读Swift编程语言一书中的guard语句(只需向下滚动到“ Early Exit”)
我们可以从您的代码中得到一个更好的示例,该示例缺少一些验证
func getEmail(email: String?) -> String? {
guard let input = email, !input.isEmpty else {
return nil
}
return input + "@somewhere.com"
}
在这里,我们使用guard将参数email
分配给局部变量,以检查该参数是否为nil input
。如果为nil,该函数将返回nil,否则它将检查是否为空,然后也将返回。
如果可以,该功能将继续并创建并返回一个电子邮件地址。请注意,该函数被声明为返回可选字符串,因为我认为这样的函数如果失败则返回nil而不是空字符串会更加清楚。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句