天下武功唯快不破:6种快速编写代码的方式

开发 前端
本文我就将和大家分享一些Swift语言编写代码的方法,它们可以帮助你构建出更好的iOS应用。

本文转载自公众号“读芯术”(ID:AI_Discovery)

经过多年的发展,Swift如今也得到了许多人的青睐。它不仅提供类型安全性,而且比许多语言都简洁得多。它的功能在发展中不断增加,一定有很多你不知道的技巧隐藏其中。

本文我就将和大家分享一些Swift语言编写代码的方法,它们可以帮助你构建出更好的iOS应用。

[[330912]]

在初始化时调用willSet和didSet

简而言之,就是第一次初始化属性时不会调用willSet和didSet属性观察器,但是可以通过将初始化包装在defer语句中来解决这个问题。

尽管有点笨拙,但是由于你不得不以某种方式设置默认值(在声明中或在外部defer中),掌握之后就会很快乐:

使用Maps安全打开选项

通常我们会使用if let或guardlet语法来安全地打开Swift中的选项,但有时我会想能不能有其他方法解决这个问题,尤其是在展开子属性时。我们的另一个选择是:使用map操作符打开选项。

只有当包含在map中的可选值包含某个值的时候才对其进行计算,从而确保其不为nil。

在可选的元组中,使用maps进行解包也很方便。用Swift语言可以进行这样的操作:

  1. func sampleTuple() ->(String, String)?{ 
  2.     return nil 
  3. }let (a, b) = sampleTuple().map { ($0, $1) } ?? ("NA","NA") 

使用重新抛出进行强大的异常处理

想必大家对throws关键字都很熟悉用得也很多,但是Swift中的rethrows功能可能就不是常常会用到了。使用rethrows关键字声明的函数表示,只有当其函数参数之一throws时才会抛出错误。

也就是说,如果Closure参数没有引发错误,那么在调用它时我们无需使用其他try方法,这样一来就能大大减少样板代码。正如在下面的代码中看到的那样,我们不必将相同的不抛异常函数放入do-catch块中。

使用协议扩展进行默认实现

Swift协议功能强大,但它们不允许你指定默认实现。如果你想避免重写方法,这样做可能会非常方便。此外,你还可以使用扩展中的where子句仅为某些约束指定协议实现,但要确保自己不会在代码库中过度使用协议扩展。

轻松跟踪字典中的更改

如何进行Swift字典中的更改(可能是用于调试)?繁琐的方法是通过分散内容来实现,但是也有一种快速的方法,只需在保存该字典的对象上定义一个下标:

在不同场景使用guardlet

Guard let语句使用的是故障安全机制,其中nil值可确保您立即返回上一层。但在某些情况下,return并不是对我们最有利的方法。例如,你可能处于for循环中,只想要continue 或者 break,那么可以按照以下方式进行操作:

学会这些小技巧,去享受纵横驰骋的编码快乐吧。

 

责任编辑:赵宁宁 来源: 读芯术
相关推荐

2018-06-19 16:48:42

华为

2021-02-23 10:15:31

软件开发IT领导者首席信息官

2021-03-03 11:36:00

嵌入式项目开发字符串格式化

2019-09-09 08:40:44

2021-01-26 09:19:58

Redis框架架构

2020-02-21 16:20:37

系统驱动项目管理

2020-01-16 16:20:55

网络安全数据技术

2018-04-13 10:36:44

Web应用优化

2016-08-01 10:38:14

华为

2018-12-19 06:38:01

Wi-Fi 6Wi-Fi网络

2011-12-05 09:56:59

2013-06-18 10:52:12

大数据

2014-12-04 17:30:08

编程

2014-12-04 15:19:51

程序员

2012-12-24 09:57:58

ERPDynamics AX

2014-03-20 16:18:30

码农工作效率

2022-02-21 09:35:36

机器学习自然语言模型

2017-06-20 11:10:13

2014-04-04 10:27:50

码农工作效率
点赞
收藏

51CTO技术栈公众号