Swift 编程思路的变化
今天看到这篇文章,才发现之前那次尝试着用 Swift 写代码时犯了一个多大的错误。
上次是在做优优育儿时,有一个新功能非常简单,就是一个单纯的列表页,所以尝试着用 Swift 进行了实现。而我当时正是像文章中写的那样,只是把之前 Objective-C 的写法按照 Swift 的语法进行了变化,然后相信了 Xcode 的代码更正提示,结果虽然可以正常运行,但代码里全是 exclamation mark。
阅读了这个系列的文章,发现 Swift 的确是个现代化的语言。虽然凭借传统语言的知识可以很容易地入手,但它所带来的不仅仅是语法的改变,更多的是编程思路的变化。
下面我将分别展示三段代码,功能是从 JSON 串中得到一个 Article 对象的数组。第一段是用 Objective-C 编写的代码,这也是我写这种功能的标准形式。第二段是按照传统思路编写的 Swift 代码,是应该避免的。第三段是用正确的思路编写的 Swift 代码。
第一段代码
|
|
|
|
第二段代码
可以看到,这段代码完全就是上面代码的 Swift 版,很容易理解,但里面有很多的惊叹号。至于为什么这样做非常不好,可以参见最开头提到的文章。
|
|
第三段代码
这里面就有很多 Swift 的新东西了,比如 guard let, if let, flatMap 等。虽然代码好像更长了,也不那么易懂了,但这才是更安全可靠的代码。
|
|