斯威夫特:使用保护声明的好处?

迈克尔·泽奇

仅了解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" 

...也一样。

那么,使用保护关键字有什么好处?

只是有一点点语法糖吗?

乔基姆·丹尼尔森(Joakim Danielson)

我认为这不是使用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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用#define声明常量的好处是什么?

来自分类Dev

使用#define声明常量有什么好处?

来自分类Dev

使用函数表达式而不是函数声明的好处?

来自分类Dev

在与定义相同的文件中使用extern声明的好处?

来自分类Dev

使用常量声明数组大小的好处是什么

来自分类Dev

使用常量声明数组大小的好处是什么

来自分类Dev

使用IIFE声明基因剔除视图模型的好处

来自分类Dev

声明构造函数的好处/缺点

来自分类Dev

使用类func,使用func和不使用类声明的好处

来自分类Dev

斯威夫特:如何使用sizeof?

来自分类Dev

斯威夫特语言:守卫声明后如何继续?

来自分类Dev

正确的数据保护声明

来自分类Dev

OAuth保护REST API有什么好处?

来自分类Dev

在中声明变量有什么好处

来自分类Dev

命名函数声明有什么好处吗?

来自分类Dev

斯威夫特:如何通过斯威夫特代码使用按钮到secondViewController

来自分类Dev

Scalaz Kleisli使用的好处

来自分类Dev

Scalaz Kleisli使用的好处

来自分类Dev

如何使用声明身份验证保护SharePoint 2013中的应用程序页面

来自分类Dev

在Web Api 2 OData端点中使用基于声明的授权保护实体

来自分类Dev

消费者使用声明身份验证时如何保护API

来自分类Dev

保护父目录下的所有目录是否有好处?

来自分类Dev

即使使用-Ofast,斯威夫特的字典也很慢

来自分类Dev

使用图表框架。斯威夫特2.0

来自分类Dev

将保护声明从json展开到AnyObject

来自分类Dev

保护声明变量不给我价值

来自分类Dev

使用NSInteger而不是int的好处?

来自分类Dev

使用UITableViewController有什么好处?

来自分类Dev

使用compose有什么好处?

Related 相关文章

热门标签

归档