这是令IOS开发者兴奋的一周,因为Swift1.2测试版随Xcode6.3发布.。开发人员可以在应用商店中下载Xcode6.3。Swift 1.2带来更快的编译,更简洁的语法,一种改善过的If let语句等等。如果你还不清楚 这些变化,看看我们的文章中描述的Swift 1.2的新特性。 Our goal is to stay on top of changes to Swift and iOS – we are in the process of updating our books and tutorials to Swift 1.2. 我们的目标是持续关心Swift和IOS的变化——我们正在为Swift1.2更新我们的图书和教程。
raywenderlich.com Swift样式指南就是我们已经更新的一个文档。我们已经为了Swift1.2做了一些更新,和一些其他的更新基于团队成员和读者提出的请求和问题。 就让我们一探究竟,看看有什么变化!
注意:我们的样式指南不同于其他的样式指南;我们是一个教程网站,这意味着我们的工作重点是为了我们网页和印刷的书籍提供更短,更可读的代码。许多决定都着眼于节约空间进行打印,易读性,和写作教程。
##多个条件绑定。
swift 1.2 现在允许你在一行代码中绑定多个条件。我们的样式指南推荐使用新的风格而不是旧的风格,特别在多个if let语句中。
当你需要测试并且需要绑定几个条件时,这种新的语法可以让你避免金字塔式代码。
同样注意的是你也可以在if let语句中包含多个布尔条件,这样会使你的代码变得更加整洁。
##枚举 和 case
经过大量的讨论后,我们正式使用在我们的教程中的样式是:用大写驼峰命名法命名枚举值。
这里有一点前后矛盾,因为枚举值在枚举范围中就像类的常量,并且感觉他们应该用小写驼峰命名法命名。然而,样式指南的使用符合我们一般的做法,在现有的Cocoa中的枚举和swift 本身都是使用以大写字母开头命名枚举值,例如optional类型其实就是一个枚举的实现,它默认的值为Some和None,同样也是大写开头的。
##尾随闭包
尾随闭包是必须的为了保持这个闭包表达式被它的函数调用,而无需将它们包装在参数括号中。
在以前的指南中,我们基本上都可以使用尾随闭包,但是,这里有一个特殊情况,就是当有2个闭包参数时,再使用尾随闭包就不是个明智的选择。 这种情况你就必须使用正常语法保持所有闭包表达式“在同一水平线上”并且命名参数。
还有另外一种方法就是一个使用命名一个尾随,这样看起来很怪,我们不建议使用。
##函数和方法的命名
和Objective-C一样,一个完整的、明确的函数包含方法名和参数名。当指向教程中的一个函数。就像你在Xcode方法跳转栏中看的一样,Swift 遵循了和Object-C一样的格式。
以前,我们定义当上下文清楚的情况下,只写一个光秃秃的函数名是OK的。这样就允许我们写viewDidAppear,而不是完整的函数名viewDidAppear(_:)。
经过一番讨论,我们觉得这是最好的方法用来区分某个东西是函数还是变量。新的引导规则是要求一致涵盖整个函数标签。这就意味着像viewDidLoad()代表的就是没有入参的格式,而tableView(_:cellForRowAtIndexPath:) 就表示有入参的格式。
##标记
在过去的样式更新指南中,我们推出了协议扩展的规则。这个规则保持着协议与协议方法的一致性,使得添加和寻找相关的代码更容易。
作为这个规则的补充规则,我们希望为了更好的提供导航添加MARK注解。
对于共同的分组方法扩展是必须的,并且MARK标签可以帮助你更容易的找到源文件。
说到optional绑定,在这次样式指南中有一样东西没有改变,那就是我们使用相同的名称为optional类型和unwrapped optional类型:
这样的好处就是这命名保持简短并且我们可以防止一些事情就像maybeView和unwrappedWidget、optionalTableView。一旦你熟悉了Swift和可选类型,这代码就变得很有意思。这里的不足之处就是这代码对于初学者来说看起来怪怪的并且很难懂。
这“ issue thread on variable shadowing”的问题一直存在。并且我们开放来解决这个问题,如果你是特别令人信服的。“Especially convincing”当然包含提供一个Apple Watch Edition版本。
法国作家Jean Cocteau说过,“样式是一种用简单的方式去表达复杂事情的方式”。这个就是是程序设计的真真应该关心的——复杂的算法和应用程序逻辑,通过代码用一种容易理解的方式表达。我希望我们的网站的编码风格有助于你理解那些有时复杂的问题,当我们试图教你扩展你在Swift开发方面的知识。
Swift 1.3 或者2.0 或者以后的版本肯定都会在这方面多做工作,并且我们会继续适应为您提供一个一致的和可读的风格。随着Swift的发展,为什么不一起来参与呢?如果你认为需要在Swift语言上做一些改变,通过GitHub中我们的Swift样式指南知识库,来加入我们的讨论。
如果你已经给出了评论,提出一个新的问题,或者发送一个拉代码的情况 - 谢谢!期待反馈的到来。如果你有一个一般性的问题或意见,请加入下面的论坛讨论!