写点什么

Swift 3 来了!

  • 2016-09-25
  • 本文字数:835 字

    阅读完需:约 3 分钟

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

2016-09-25 19:003827
用户头像

发布了 218 篇内容, 共 79.7 次阅读, 收获喜欢 76 次。

关注

评论

发布
暂无评论
发现更多内容

人工智能 | 语音识别模型

测吧(北京)科技有限公司

测试

Pixabay API集成:免费获取图片和视频的步骤详解

幂简集成

API 图片

如何使用OPA(开放策略代理)管理您的API策略

Gingxing

kong API网关 Kong 网关 消息网关 Kong Gateway

AI赋能,中国企业管理软件崛起正当时

人称T客

携手火山引擎,易点天下AI布局加速拓展

新消费日报

试验协同管理平台(源码+文档+部署+讲解)

深圳亥时科技

面向 Data+AI 的统一数据目录探索 | Data Infra NO.22 回顾(含资料发布)

Databend

Google 类 Computer Use 项目:贾维斯计划;字节 PersonaTalk 视频配音框架能保持口型与风格同步

RTE开发者社区

鸿蒙开发案例:巧算24点

zhongcx

VictoriaMetrics 中文教程(10)集群版介绍

巴辉特

Victoriametrics VictoriaMetrics教程

BY林子的“软件质量与测试”赋能体系

BY林子

质量管理 软件测试 软件质量 质量赋能

《使用Gin框架构建分布式应用》阅读笔记:p234-p250

codists

golang gin 编程人 codists

实时监控商品信息api接口,加速迭代优化:助力商家产品持续精进之路

代码忍者

API 接口 pinduoduo API

C#使用Socket实现分布式事件总线,不依赖第三方MQ

沙漠尽头的狼

智慧环保系统(源码+文档+部署+讲解)

深圳亥时科技

《智能文档处理“百宝箱”:数字化时代文档处理的必备利器》

小满大王i

人工智能 AI 图像识别 大模型

EasyRecovery破解版下载无需注册,easyrecovery数据恢复软件免费版激活码密钥

阿拉灯神丁

Easyrecovery破解 恢复软件 数据恢复软件 EasyRecovery16 破解软件

华为校园鸿蒙公开课走进清华大学

最新动态

如何在mac上玩使命召唤手游?苹果电脑好玩的第一人称射击游戏推荐

阿拉灯神丁

游戏 兼容性 苹果电脑 使命召唤5 CrossOver Mac下载

Swift 3来了!_开源_Sergio De Simone_InfoQ精选文章