Swift 5.1 发布
Swift 5.1 通过扩展 Swift 5 的稳定特性来增强 Swift 5的优点,Swift 5.1 在编译时引入模块稳定性。有了模块稳定性(Module stability),可以创建和共享二进制 framework,以便兼容 Swift 的未来版本。Swift 5.1 还扩展了语言和标准库的功能,增加了一些新特性,如属性包装器( property wrapper)、不透明返回类型(opaque result type)、成员查找(key path member lookup)以及字符串的新 API。总之,Swift 5.1 的新特性使设计更好的 API 和减少普通样板代码量变得更加容易。具体如下:
模块稳定性
Swift 5.1 允许创建二进制 framework,且可与其他人共享。模块稳定性定义了一个新的基于文本的模块接口文件,该文件里说明了二进制框架的 API。
标准库更新
Swift 5.1 中的标准库包括以下新特性:
- 支持处理和更新集合类型上的差异
- 增加在分配数组存储之前初始化和访问数组的灵活性
- 新的 API 使用 String 会更容易,包括创建和处理 contiguous string、用于处理 Unicode 文本的帮助程序和用于 String.Index 和 Range 的泛型构造器
- 用于使用 SIMD 类型的各种增量 API 改进,包括对扩展向量、reduction 操作和向量 swizzle 的支持
- 支持需要唯一标识符的实体的可标识协议
其他语言和编译器更新
Swift 5.1 包括以下新的语言特性:
- 属性包装器引入了通用语法,用于定义属性值的自定义访问模式,包括(但不限于)延迟初始化方法(Delayed initializer)、原子操作、特定于线程的存储与复制即写行为等
- 不透明返回类型(opaque result type)允许使用泛型类型来支持符合同一协议的不同类型,或者在 api 中隐藏实现细节信息
- return 关键字不是单个表达式闭包所必需的
- Self 现在可以用于类和值类型
- 编译器现在使用默认构造器合成属性的默认值
SwiftSyntax 更新
SwiftSyntax 已经被重构,通过直接使用 Swift 编译器的解析器来提高它的性能。此外,通过重构内部数据结构,提高了语法树访问和相关操作的性能,从而提高了效率。
语言服务器协议
MacOS 和 Ubuntu 的 Swift 5.1 OSS 工具包包括 SourceKit-LSP 的二进制文件,它是 Swift 和基于 C 的语言服务器协议(LSP,Language Server Protocol)的实现。
Swift 5.1与 Swift 5 兼容,且兼容 Swift 4.2 和 Swift 4/4.1。详情见发布公告。
下载:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Scala.js 0.6.29 发布,将 Scala 编译成 js 的编译器
Scala.js 是一个将 Scala 语言编译成 JavaScript 的工具,旨在构建更健壮的前端web应用程序。0.6.29版本包括: 用 SBT 1.x 对增量编译中的主要错误进行修复 主要的性能改进,特别是在模式匹配方面 它还引入了 js.import(ModuleName),相当于 JavaScript 的动态import() 调用。具体如下: js.import( )动态导入 CMAScript 2020 将标准化动态导入,Scala.js 使用 js.import[A<:js.Any]() 方法添加对它们的支持,它返回一个 js.promisation[A],其中参数 A 是描述模块 API 的 JS 特性。 import scala.scalajs.js trait FooAPI extends js.Any { def bar(x: Int): Int } val moduleName = "foo.js" val promise = js.`import`[FooAPI](moduleName) val future = promis...
- 下一篇
Nginx Unit 1.11.0 发布,动态 Web 应用服务器
NGINX Unit 是一个动态的网络应用服务器,它的设计初衷就是可运行多种编程语言的。 1.11.0发布了,这个版本提高了 Go应用程序的稳定性,并引入了三个主要特性: 提供静态文件的基本支持:通过这个特性,将 Unit 转换成一个成熟的 Web 服务器,能够作为任何类型的 Web 服务的构建块。 分离应用:此功能提高了运行应用程序的安全性,允许在基于 Linux 名称空间的孤立环境中运行应用程序,这与Docker 容器的工作方式类似。 Java Servlet 容器的内置WebSocket 服务器实现 其他更改: 修复:在高负载下 Go 应用程序中可能出现分割故障 修复:如果 Unit 是用 GNU ld 以外的链接构建的,WebSocket 支持就会中断 详情见发布说明: http://mailman.nginx.org/pipermail/unit/2019-September/000167.html
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8安装Docker,最新的服务器搭配容器使用
- 设置Eclipse缩进为4个空格,增强代码规范
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题