Swift 4现已正式发布!Swift 4基于Swift 3的优势,提供更强大的稳健性和稳定性,为Swift 3提供源代码兼容性,对标准库进行改进,并添加了归档和序列化等功能。
Swift 4.0是一个主要的语言版本,包含以下通过Swift Evolution进程的语言更改和更新:
String
Swift 4包括一个更快,更容易使用的String实现,可以保留Unicode的正确性,并增加了对创建,使用和管理子字符串的支持。
采集
Swift 4增加了创建,使用和管理集合类型的改进。
归档和序列化
Swift 4支持结构化和枚举类型的归档,并可以对外部格式(如JSON和plist)进行类型安全的序列化。
新的兼容性模式
使用Swift 4,可能不需要修改代码以使用新版本的编译器。编译器支持两种语言模式:
Swift 3.2:在这种模式下,编译器将接受使用Swift 3.x编译器构建的大多数源代码。为了提供这种级别的源兼容性,先前存在的API(作为Apple提供的标准库或API的一部分)的更新将不会出现在此模式中。Swift 4中的大部分新语言功能都以这种语言模式提供。
Swift 4.0:此模式包括所有Swift 4.0语言和API更改。许多项目将需要一些源迁移,尽管与之前Swift版本之间的许多重大更改相比,源更改数量相当不错。
语言模式由-swift-version标志指定给编译器,它由Swift包管理器和Xcode自动处理。
这些语言模式的一个优点是,可以开始使用新的Swift 4编译器,并以自己的速度完全迁移到Swift 4,并利用新的Swift 4功能,一次使用一个模块。
软件包管理器更新
Swift 4为Swift Package Manager引入了新的工作流功能和更完整的API:
在标记你的第一个正式版本之前,可以轻松开发多个软件包,或者在多个软件包的分支上一起工作。
软件包产品已经正式化,可以控制软件包发布给客户的库。
新的Package API允许软件包指定一些新的设置,使软件包的作者能够更好地控制软件包的构建方式,以及如何在磁盘上组织源代码。总的来说,用于创建包的API现在更清晰和更清晰,同时保留与旧包的源兼容性。
在macOS上,现在Swift软件包的构建发生在一个防止网络访问和文件系统修改的沙箱中,有助于减轻恶意制作的清单的影响。
此外,Swift软件包管理器建立在Swift 3.1(SE-0159)中引入的软件包管理器工具版本控制之上,该软件包允许软件包作者指定构建软件包所需的Swift版本(现在包括Swift 4)。
文档
Swift 4.0的Swift编程语言更新版本现已推出。它也可以在苹果的iBooks商店免费提供。
平台支持
支持Linux的Ubuntu 16.10,Ubuntu 16.04和Ubuntu 14.04的官方二进制文件可供下载。
苹果(Xcode)
为了在苹果平台上开发,Swift 4.0作为Xcode 9的一部分运行。