美团■天下武功唯快不破:6种快速编写代码的方式
文章图片
文章图片
文章图片
文章图片
全文共1098字 , 预计学习时长5分钟
图源:unsplash
经过多年的发展 , Swift如今也得到了许多人的青睐 。 它不仅提供类型安全性 , 而且比许多语言都简洁得多 。 它的功能在发展中不断增加 , 一定有很多你不知道的技巧隐藏其中 。
本文我就将和大家分享一些Swift语言编写代码的方法 , 它们可以帮助你构建出更好的iOS应用 。
在初始化时调用willSet和didSet
简而言之 , 就是第一次初始化属性时不会调用willSet和didSet属性观察器 , 但是可以通过将初始化包装在defer语句中来解决这个问题 。
尽管有点笨拙 , 但是由于你不得不以某种方式设置默认值(在声明中或在外部defer中) , 掌握之后就会很快乐:
使用Maps安全打开选项
通常我们会使用if let或guardlet语法来安全地打开Swift中的选项 , 但有时我会想能不能有其他方法解决这个问题 , 尤其是在展开子属性时 。 我们的另一个选择是:使用map操作符打开选项 。
只有当包含在map中的可选值包含某个值的时候才对其进行计算 , 从而确保其不为nil 。
在可选的元组中 , 使用maps进行解包也很方便 。 用Swift语言可以进行这样的操作:
func sampleTuple() ->(String String)?{
return nil
let (a b) = sampleTuple().map { ($0 $1)?? (\"NA\"\"NA\")
使用重新抛出进行强大的异常处理
想必大家对throws关键字都很熟悉用得也很多 , 但是Swift中的rethrows功能可能就不是常常会用到了 。 使用rethrows关键字声明的函数表示 , 只有当其函数参数之一throws时才会抛出错误 。
也就是说 , 如果Closure参数没有引发错误 , 那么在调用它时我们无需使用其他try方法 , 这样一来就能大大减少样板代码 。 正如在下面的代码中看到的那样 , 我们不必将相同的不抛异常函数放入do-catch块中 。
使用协议扩展进行默认实现
Swift协议功能强大 , 但它们不允许你指定默认实现 。 如果你想避免重写方法 , 这样做可能会非常方便 。 此外 , 你还可以使用扩展中的where子句仅为某些约束指定协议实现 , 但要确保自己不会在代码库中过度使用协议扩展 。
轻松跟踪字典中的更改
如何进行Swift字典中的更改(可能是用于调试)?繁琐的方法是通过分散内容来实现 , 但是也有一种快速的方法 , 只需在保存该字典的对象上定义一个下标:
【美团■天下武功唯快不破:6种快速编写代码的方式】在不同场景使用guardlet
Guard let语句使用的是故障安全机制 , 其中nil值可确保您立即返回上一层 。 但在某些情况下 , return并不是对我们最有利的方法 。 例如 , 你可能处于for循环中 , 只想要continue 或者 break , 那么可以按照以下方式进行操作:
学会这些小技巧 , 去享受纵横驰骋的编码快乐吧 。
留言点赞关注
我们一起分享AI学习与发展的干货
如转载 , 请后台留言 , 遵守转载规范
- 「三星」拒绝马云王健林800万年薪招揽,一手创建美团的小伙,如今怎样了
- [外卖员]美团新交通工具四轮车,引骑手争议,外卖员:这是要端掉咱的饭碗
- 『外卖小哥』美团外卖随随便便就月入过万?比进工厂强,听听过来人怎么说
- 天下快谈|网友:这下川普要慌了,又一好消息传来!美国巨头突然“认怂”
- 凤仙郡天下杂谈|“百相生”开启社交4.0时代,寻找三观一致的你
- 少年一梦|绝招在手,天下我有,网络货运六大杀手锏
- 极速说天下|Pro尊享版来了?或改名“Ultra”立足中高端,本月发布,K30
- #腾讯#程序员想离职被领导拒绝:美团滴滴腾讯百度总监我都认识,你哪都去不了
- 美团:在美团上点外卖因为使用了优惠券就少给评论还被骂,这究竟是谁的错?
- 潮车行天下|玛莎拉蒂海王星全新引擎震撼登场,首次引进F1尖端技术