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 正式发布,新增更多泛型特性支持的更多相关文章

  1. Angular4.0.0正式发布,附新特性及升级指南

    本文首发地址:Angular4.0.0正式发布,附新特性及升级指南 作者|孙薇 编辑|尾尾 经历了6个RC版本之后,Angular项目组终于发布了新版,即正式版 Angular 4.0.0.新版的 A ...

  2. Qt 5.4正式发布!引入WP,支持HTML5混合开发

    北京时间12月11日消息,Digia全资子公司The Qt Company在其 官方博客上宣布,正式发布Qt 5.4,支持HTML5混合开发,引入对于Windows Phone的支持,以及众多跨桌面. ...

  3. MindSpore特性支持类

    MindSpore特性支持类 Q:请问MindSpore支持梯度截断吗? A:支持,可以参考梯度截断的定义和使用. Q:如何在训练神经网络过程中对计算损失的超参数进行改变? A:暂时还未有这样的功能. ...

  4. Tapdata Cloud 版本上新!新增TiDB等数据源支持,连接和任务功能增强,体验更优

    Tapdata Cloud cloud.tapdata.net Tapdata Cloud 是国内首家异构数据库实时同步云平台,目前支持Oracle.MySQL.PG.SQL Server.Mongo ...

  5. 编写高质量代码改善C#程序的157个建议——建议43:让接口中的泛型参数支持协变

    建议43:让接口中的泛型参数支持协变 除了上一建议中提到的使用泛型参数兼容接口不可变性外,还有一种办法是为接口中的泛型声明加上out关键字来支持协变,如下所示: interface ISalary&l ...

  6. 使用xmake检测编译器特性支持

    如果我们要写跨平台的c/c++代码,很多时候需要处理由于不同编译器对c/c++各个标准支持力度不同导致的兼容性问题,一般通常的解决办法是:自己在代码中通过宏去判断各个编译器的版本.内置宏.标准库宏._ ...

  7. ZKEACMS 2.2.1 正式发布,更多特性等您来发现

    前言 如果你还不知道ZKEACMS,不妨先了解一下. ASP.NET MVC 开源建站系统 ZKEACMS 推荐,从此网站“拼”起来 官方地址:http://www.zkea.net/zkeacms ...

  8. Swift 1.2 正式发布 - 带来很多重大改进

    Swift 1.2 随着 Xcode 6.3 Beta 正式发布了.这次的 beta 发布包含了对 Swift 编译器显著的改进.还有对 Swift 语言本身的新特性的增加.这篇文章介绍下主要部分. ...

  9. Swift 4.0 正式发布,更快更兼容更好用

    Swift4现已正式发布!Swift4在Swift3的基础上,提供了更强大的稳健性和稳定性,为Swift3提供源码兼容性,对标准库进行改进,并添加了归档和序列化等功能. 你可以通过观看WWDC2017 ...

随机推荐

  1. 《FTL之垃圾回收、写放大和OP 》总结

    来自 http://www.ssdfans.com/?p=1840: 写放大WA: 对空盘来说(未触发GC),写放大一般为1,即Host写入多少数据,SSD写入闪存也是多少数据量(这里忽略SSD内部数 ...

  2. PAT 1084 Broken Keyboard[比较]

    1084 Broken Keyboard (20 分) On a broken keyboard, some of the keys are worn out. So when you type so ...

  3. Vmwaretools

    先下载Vmwaretools  这一步是设置ubuntu的超级用户root的密码我设置为dong  转换为root用户操作 执行 perl程序 然后就是一路Enter,开始关机重启就行了 来自为知笔记 ...

  4. 设备驱动与控制器 I/O

    控制器是对硬件发起控制命令,负责给系统提供接口,想要正常使用该硬件功能系统中必须安装相应驱动 I/O设备 cpu和存储器并不是操作系统唯一需要管理的资源,I/O设备也是非常重要的一环. I/O设备一般 ...

  5. windows安装oracle client 18c 和plsql工具

    安装须知: (1)安装平台选择.linux/windows (2)软件位数选择.32/64,如果你的plsql工具是32位,那么你就安装32位客户端,如果是64位,你就安装64位客户端. 安装过程: ...

  6. 学会JS的this这一篇就够了

    转自:http://www.imooc.com/article/1758 以前看某本书上讲: 掌握了JS中this的用法才算真正的跨过了JS的门槛 我深以为是!但是JS的this却并不是那么简单的内容 ...

  7. Visual studio插件 Reshaper--- 常用快捷键

    快速修复 alt+enter (alt+enter唤出快速修复面板,上下方向键进行选择,再次敲击enter键确定修改) 跳转到对象声明 ctl+鼠标左键 重构-重命名(ctl+r+r) esc键退出 ...

  8. Foundations of RESTful Architecture

    Introduction The Representational State Transfer (REST) architectural style is not a technology you ...

  9. linux中uptime命令获取主机运行时间和查询系统负载信息

    系统中的uptime命令主要用于获取主机运行时间和查询linux系统负载等信息.uptime命令可以显示系统已经运行了多长时间,信息显示依次为:现在时间.系统已经运行了多长时间.目前有多少登陆用户.系 ...

  10. Linux上db2安装

    Linux上db2安装:https://blog.csdn.net/nayanminxing/article/details/69372283