Skip to content

Latest commit

 

History

History
41 lines (28 loc) · 2.97 KB

Swift 2.2到3.0的改变.md

File metadata and controls

41 lines (28 loc) · 2.97 KB

Swift的变化:从2.2到3.0会带来什么

title: Swift 3.0 和 Foundation date: tags: [] categories: [] permalink: changing-swift-whats-coming-up-in-2-2-and-3-0


原文链接=http://ericasadun.com/2015/12/03/changing-swift-whats-coming-up-in-2-2-and-3-0/ 作者=Erica Sadun 原文日期=2015-12-03 译者=Channe 校对= 定稿= 发布时间=

如果你还没看过Swift发展路线图,我建议你要好好看一看。目前为止,已经有四个针对Swift 3和一个针对Swift 2.2的提案被接受,也许某些提案能让你会心一笑。

显然,这些提案中最令人振奋的是 API 翻译的改进,旨在废除冗长的Objective-C风格,形成调用简洁且易读的Swift风格。

看上去我们将要和直接函数柯里化声明说再见了,虽然这是没有语法糖语言共有的特性。这是我能忍受的东西,这点改变并不会让我开心起来,除此之外似乎有迫切的理由去降低语言的复杂度。

++--(这是两个减号,不是破折号)运算符也在移除的部分中。它们最初是为了和C语言一致而引入的,但它们的结果值通常不会被检查。对大部分开发者来说,可以用+=-=粗略地替代它们。

最后,var函数参数将会被移除,因为它们现在的实现是从复制和修改步骤中抽象出来,而这造成了困惑。我觉得这不是一个大损失,只是需要你声明一个函数内 var 变量赋值来替代它。

十分有趣是,除了++--的改变,几乎所有的变更点我都在新书中提到了。

已经被接受的 Swift 2.2 提案允许你 用关键字作为参数标签,这使得现在可以这样声明:

    func touchesMatching(phase: NSTouchPhase, in view: NSView?) -> Set<NSTouch>

Swift 3.0 承诺会保持 ABI(Application Binary Interface) 的稳定性:『成功保持 ABI 稳定性意味着,即便源代码语言发生了变化,用以后版本的 Swift 开发的应用程序和编译库能在二进制层次上和 Swift 3.0 版本的应用程序和编译库相互调用。』

开发团队利用这个机会做个类型系统清理,包括所有语言的小改良,同时『完成』类系统。迁移者将把项目从2.x版迁到3.x版。基础代码或多或少能保证与这次大更新没关系。

最终的 API 设计指导原则发布在这个网址