硬核干货——《中小企业 AI 实战指南》免费下载! 了解详情
写点什么

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:003712
用户头像

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

关注

评论

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

在vue2中使用ts

正经工程师

typescript vue.js

从三个产业侧影,打开万物智能的应用之匙

脑极体

谈谈测试

BigBang!

测试的价值 测试文化 测试落地

开源=免费?

Philips

开源 开源社区

关于 UML 类图

西贝

UML 图表

技术解读丨目标检测之RepPoints系列算法

华为云开发者联盟

算法 神经 目标检查

代码重构 - 课后作业

Nick~毓

第三课代码重构课后作业

Geek_michael

极客大学架构师训练营

阿里内部超流行的“SpringBoot+ 微服务指南”,理论与实战双管齐下

Java架构之路

Java 程序员 微服务 Spring Boot 编程语言

极光无限:用AI赋能安全 解决安全行业人才紧缺难题

风向标

人工智能

架构师训练营 - 作业 - 第二周

Max2012

一周信创舆情观察(9.21~9.27)

统小信uos

太牛了,这份神仙级面试笔记把所有 Java 知识面试题都详解出来了

Java架构之路

Java 程序员 面试 编程语言

一个草根的日常杂碎(9月29日)

刘新吾

随笔杂谈 生活记录 社会百态

国内上市进程或将提速!百度宣布小度科技独立融资

脑极体

中秋佳节,程序员教你AI三步成诗,秒变“李白”

华为云开发者联盟

AI 中秋

深入剖析 | Java15语法特性

九叔(高翔龙)

Java 架构 Java 分布式 java15新特性

2020HC大会上,这群人在讨论云原生…

华为云开发者联盟

华为 华为云 大会

上手深度学习之前,我们先聊聊“数学”

华为云开发者联盟

神经网络 学习 数学

重塑产业+价值共识,区块链助力供应链金融数字化

CECBC

区块链 供应链物链

架构师训练营 1 期第 3 周:代码重构 - 作业

piercebn

极客大学架构师训练营

GitHub上标星68k,基于SpringBoot+Netty分布式开源的即时通讯系统项目

Java架构之路

Java 程序员 编程语言 Netty 项目实战

全文!马云对数字时代全球化的全新解读

CECBC

全球化 数字时代

第三周学习代码重构总结

三板斧

极客大学架构师训练营

LeetCode题解:242. 有效的字母异位词,数组排序,JavaScript,详细注释

Lee Chen

大前端 LeetCode

甲方日常 25

句子

生活 随笔杂谈 日常

单例模式

knight

数据库选型入门必读:如何在眼花缭乱的产品中挑出最适合业务的?

华为云开发者联盟

数据库 数据库选择 关系型

软件架构(2)-框架设计

Zeke

极客大学架构师训练营

区块链掀起全民创业热潮!数字资产是未来全球最具前景和价值的!

CECBC

区块链 数字货币

不是我不小心

escray

Java ruby ruby-on-rails 面试 面经

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