Apple 工程师 Ted Kremenek 在博文中写道,Swift 3.0 已发布。这次发布的新版本中对于语言及其标准库进行了大量的修改,增加了Linux 端口,并首次官方发布了 Swift Package Manager 。
自 2015 年底 Apple开源 Swift 之后,Swift 3 是首个发布的主要版本,该版本实现了 Swift 演变过程中所讨论并通过的 90 多个提议。
Swift 3.0 中的一系列变化旨在依照 Swift API Design 指南,通过去除一部分可能被视作遗留下来的 Objective-C 的内容,来清理 API。这个举措可以有效缩短 Swift 的语法,并增强一致性:
需要命名函数和方法的第一个参数以实现写操作(除非用 _ 显式省略):
aString.write(toFile: "filename", atomically: true, encoding: NSUTF8StringEncoding) UIFont.preferredFont(forTextStyle: UIFontTextStyleSubheadline)
而不是:
aString.writeToFile("filename", atomically: true, encoding: NSUTF8StringEncoding) UIFont.preferredFontForTextStyle(UIFontTextStyleSubheadline)
省略不必要的词:
UIColor.red()
而不是:
UIColor.redColor()
当上述的两条规则同时采纳的时候会产生更好的效果,例如下面的语句所示:
aString.stringByReplacingOccurrencesOfString("A", withString: "a")
变成:
aString.replacingOccurrences(of: "A", with: "a")
Swift 3 改进的另外一个版块是处理属于多个 Cocoa 框架的 C 功能。比如说所有以 CGContext、CGAffineTansform、CGPDFDocument 等开始的 Core Graphics 功能,现在可以被称为是对象的方法:
if let ctx = UIGraphicsGetCurrentContext() { ctx.setFillColor(UIColor.red().cgColor) ... } CGAffineTransform(translationX: 64, y: 0)
Swift 3 中还对语法进行了改变,以清理语言。比如说,去除了 ++ 和 -- 运算符,去除了函数的参数中的var ,去除了 C 语言中的循环条件和增量器,这些语法带来的弊大于利。
Swift 3 的变化列表涵盖了太多内容,很抱歉我们无法在一篇文章中涵盖所有的内容。你可以在官方的公告中查看所有的更新细节。
查看英文原文: Swift 3 is Out
评论