Swift 4.1 正式发布,新增更多泛型特性支持
Swift 4.1 兼容 4.0,并做了一些改进,其中大部分通过了 Swift Evolution 流程。此次发布,包含了对核心语言的更新,包括新增更多对泛型的支持、新的构建选项,以及对 Swift Package Manager 和 Foundation 框架的小改进。同时在 ABI 稳定(Application Binary Interface,应用程序二进制接口)方面也取得了重大进展,期待它真的能在 Swift 5 完全实现。
语言更新:
Swift 4.1 增加了更多的泛型特性,进一步推进 Swift Generics Manifesto 中提出的目标:
SE-0143 Conditional Conformance
SE-0157 Support recursive constraints on associated types
SE-0185 Synthesizing Equatable and Hashable conformance
SE-0187 Introduce Sequence.compactMap(_:)
SE-0188 Make Standard Library Index Types Hashable
SE-0191 Eliminate IndexDistance from Collection
Foundation 更新:
JSONEncoder 和 JSONDecoder 类现在支持在编码和解码期间转换密钥的新策略。
ABI 稳定:
在本地对象头部使用 word-size 字段进行引用计数 (SR-4353)
通过 witness table 查看与枚举鉴别器的交互效率 (SR-4332)
判断 existential 类型元数据的布局,包括协议描述符(SR-4341)
定义通用和协议要求的规范化以实现与顺序无关的修改(SR-3733)
审核每个运行时功能的可取性和行为(SR-3735)
对 Sequences 和 Collections 施加适当的约束(SR-3453)
使用条件一致性折叠各种集合 wrapper (SR-3458)
其它更新:
SE-0184 Unsafe[Mutable][Raw][Buffer]Pointer: add missing methods, adjust existing labels for clarity, and remove deallocation size
SE-0186 Remove ownership keyword support in protocols
SE-0189 Restrict Cross-module Struct Initializers
SE-0198 Playground QuickLook API Revamp
具体内容请查看发布公告。
下载地址:https://swift.org/download/(编辑:雷林鹏 来源:网络)
Swift 4.1 正式发布,新增更多泛型特性支持的更多相关文章
- Angular4.0.0正式发布,附新特性及升级指南
本文首发地址:Angular4.0.0正式发布,附新特性及升级指南 作者|孙薇 编辑|尾尾 经历了6个RC版本之后,Angular项目组终于发布了新版,即正式版 Angular 4.0.0.新版的 A ...
- Qt 5.4正式发布!引入WP,支持HTML5混合开发
北京时间12月11日消息,Digia全资子公司The Qt Company在其 官方博客上宣布,正式发布Qt 5.4,支持HTML5混合开发,引入对于Windows Phone的支持,以及众多跨桌面. ...
- MindSpore特性支持类
MindSpore特性支持类 Q:请问MindSpore支持梯度截断吗? A:支持,可以参考梯度截断的定义和使用. Q:如何在训练神经网络过程中对计算损失的超参数进行改变? A:暂时还未有这样的功能. ...
- Tapdata Cloud 版本上新!新增TiDB等数据源支持,连接和任务功能增强,体验更优
Tapdata Cloud cloud.tapdata.net Tapdata Cloud 是国内首家异构数据库实时同步云平台,目前支持Oracle.MySQL.PG.SQL Server.Mongo ...
- 编写高质量代码改善C#程序的157个建议——建议43:让接口中的泛型参数支持协变
建议43:让接口中的泛型参数支持协变 除了上一建议中提到的使用泛型参数兼容接口不可变性外,还有一种办法是为接口中的泛型声明加上out关键字来支持协变,如下所示: interface ISalary&l ...
- 使用xmake检测编译器特性支持
如果我们要写跨平台的c/c++代码,很多时候需要处理由于不同编译器对c/c++各个标准支持力度不同导致的兼容性问题,一般通常的解决办法是:自己在代码中通过宏去判断各个编译器的版本.内置宏.标准库宏._ ...
- ZKEACMS 2.2.1 正式发布,更多特性等您来发现
前言 如果你还不知道ZKEACMS,不妨先了解一下. ASP.NET MVC 开源建站系统 ZKEACMS 推荐,从此网站“拼”起来 官方地址:http://www.zkea.net/zkeacms ...
- Swift 1.2 正式发布 - 带来很多重大改进
Swift 1.2 随着 Xcode 6.3 Beta 正式发布了.这次的 beta 发布包含了对 Swift 编译器显著的改进.还有对 Swift 语言本身的新特性的增加.这篇文章介绍下主要部分. ...
- Swift 4.0 正式发布,更快更兼容更好用
Swift4现已正式发布!Swift4在Swift3的基础上,提供了更强大的稳健性和稳定性,为Swift3提供源码兼容性,对标准库进行改进,并添加了归档和序列化等功能. 你可以通过观看WWDC2017 ...
随机推荐
- SAMA5D3 Xplained Board
一.烧录 1)先在官网 http://www.at91.com/linux4sam/bin/view/Linux4SAM/Sama5d3XplainedMainPage 下载 linux4sam-p ...
- MongoDB的固定集合
一.MongoDB固定集合概念 固定集合指的是事先创建,并且大小固定的集合.即假设一个集合设置了固定大小为100,再添加一条文档的时候,会把最前面的文档剔除,永远只保留100条数据. 固定集合特性:固 ...
- matplotlib中的颜色及线条控制
出自 http://www.cnblogs.com/darkknightzh/p/6117528.html 参考网址: http://stackoverflow.com/questions/22408 ...
- ios极光推送快速集成教程
内容中包含 base64string 图片造成字符过多,拒绝显示
- php int 与 datetime 转换
数据库日期类型是int类型的,该查询结果是datetime类型的 select from_unixtime( `dateline` ) from cdb_posts 如果原来类型是datetime类型 ...
- HTTPS复习
Https Https其实是两个协议,即HTTP协议和SSL协议,但是由于HTTP协议应用广泛,而且需要为其提供数据隐私保护,所以将HTTP协议与SSL协议结合.HTTP属于应用层,在远古时代,它只需 ...
- Linux使用free命令查看实际内存占用
转自:http://www.cnblogs.com/pengdonglin137/p/3315124.html Linux下在终端环境下可以使用free命令看到系统实际使用内存的情况,一般用free ...
- 在MySQL中使用explain查询SQL的执行计划
1.什么是MySQL执行计划 要对执行计划有个比较好的理解,需要先对MySQL的基础结构及查询基本原理有简单的了解. MySQL本身的功能架构分为三个部分,分别是 应用层.逻辑层.物理层,不只是MyS ...
- shall的过去式和should怎么区分
shall的过去式是should,但是怎么和情态动词的should区分啊,答得好我会提高悬赏!!! shall 将来时,用于第一人称:I shall be back in a minute.用来表示征 ...
- centos 查询mysql配置文件位置
具体指令: 1.which mysqld (”which 文件名“ : 搜索命令所在路径及别名) 2./usr/sbin/mysqld --verbose --help | grep -A 1 'D ...