Swift版本历史和各版本特性
2019-11-28 本文已影响0人
Travelcolor
- 编辑时间:2019年11月
发展历史
- 大约在2010年7月,苹果开始研发Swift语言
- 从2014年至今,已经有15个版本发布,其中有5个大版本,10个小版本
/**
1.0版本:2014年8月
2.0版本:2015年9月(年底12月开源)
3.0版本:2016年9月
4.0版本:2017年9月
5.0版本:2019年3月
5.1版本:2019年6月
*/
- Objective-C 从80年代发布至今,只有两个版本
- Swift 2015年12月正式开源,目前Swift可以应用到多个领域,甚至连TensorFlow也有Swift语言版本
Swift 2
- Error handing增强
- guard 语法
- 协议支持扩展 等等
Swift 3
- 新的GCD和Core Graphics
- NS前缀从老的Foundation类型中移除
- 内联序列函数sequence
- 新增fileprivate和open两个权限控制
- 移除了诸多弃用的特性,比如++、-- (两个--) 运算符等(因为和加1减1没有区别)
- 增加区间运算符
Swift 4
- extension中科院访问private的属性
- 类型和协议的组合类型
- Associated Type可以追加Where约束语句
- 新的Key Paths语法
- 下标支持泛型
- 字符串增强 等等
Swift 5
- ABI稳定(意味着Binary interface稳定,运行的时候只要使用Swift5以上的编译器,编译出来的Binary,都可以跑在Swift5以上或者runtime上面,不用在App中放一SwiftRuntime,放了SwiftRuntime会使包变的非常大)
一些疑问:
- Apple什么时间发布用Swift写的系统框架,目前GCD、Core Framework等,用C或者OC来编写的
- Apple什么时间会提供Swift Only API
- Apple什么时间开始锁定Objective-C 的SDK,不再新增API
- Apple什么时间会用Swift的特性来更新Objective-C的SDK
- Raw strings
- 标准库新增Result
- 定义了与Python或Ruby等脚本语言互操作的动态可调用类型
- ......
API(Application Programming Interface):应用程序编程接口
- 源代码和库之间的接口
ABI (Application Binary Interface):应用程序二进制接口
- 应用程序与操作系统之间的底层接口
- 涉及的内容有:目标文件格式、数据类型的大小/布局/对齐、函数调用约定等等
Swift完全开源:https://github.com/apple/swift,主要采用C++
和Swift
编写