写点什么

Swift 5 进入发布倒计时

  • 2018-10-07
  • 本文字数:851 字

    阅读完需:约 3 分钟

在正式发布 Swift 4.2 之后,Swift 团队现在启动了发布过程的最后阶段,把注意力集中在了 Swift 5 上。Swift 5 计划于 2019 年初发布,其目标是在保持源代码兼容性的同时,实现 ABI 稳定性。

ABI 稳定性大致可以理解为跨 Swift 版本的“二进制兼容性”。ABI 稳定性允许将框架链接到程序,而不管使用了哪个编译器版本来编译它们,只要两个编译器生成的代码都符合即将到来的 Swift ABI。对于第三方框架开发者以及在苹果公司内部推广 Swift 应用来说,这是一个关键的特性。ABI 稳定性最初计划在Swift 3 中实现,但后来由于大量的新语言特性正在开发而延迟。

如前所述,ABI 稳定性不包括苹果所说的模块稳定性,后者可以描述为与未来编译器版本兼容的库的接口。换句话说,ABI 稳定性影响的是框架运行时链入程序的能力,模块的稳定性关注的是在使用更新版本的编译器(例如Swift 6)构建程序时可以使用使用旧版本的编译器(例如Swift5)构建的库。模块稳定性肯定是需要的,因为它可以简化开发人员在多个账户下的开发,但并不关键。目前还不清楚,模块稳定性是否会加入Swift 5。

Swift 5 还包括若干新语言特性其中有些已经实现,因此,这些特性毫无疑问会加入这个版本中,其中包括:

  • “本体键路径( Identity key path )”:这提供了一种方法,使开发人员可以使用 self 伪属性引用符合该路径的整个值。

  • count(where:) :这提供了在满足布尔表达式的 Sequence 中计算元素个数的可能性。

  • 原始字符串分隔符:它允许开发人员将任何需要转义的字符包含在以""“分隔的字符串中,而不是使用单引号(”)。

其他特性仍然在开发之中,包括扁平化来自 try? 的嵌套选项 simd vectors 用户定义的动态“callable”类型,等等。

所有新的语言特性都不会破坏源代码的兼容性,也就是说,大多数兼容Swift 4.2 编译器的源代码都应该使用Swift 5.0 编译器进行编译。不过,4.2 版本之前的Swift 版本不是源代码兼容的,至少应该升级到Swift 4.2 版本。开发团队将定期发布趋近5.0 版本的可下载快照

查看英文原文: Swift 5 Enters the Latest Stage of Release

2018-10-07 08:232559
用户头像

发布了 1008 篇内容, 共 438.5 次阅读, 收获喜欢 346 次。

关注

评论 1 条评论

发布
暂无评论
发现更多内容

孩子,我们在睡前一起来阅读 15 分钟的好书,让彼此都带着好的故事入眠。

叶小鍵

正确阅读 托马斯·奥本 Doug Antin 蒂·泰德罗克

面试官问你MyBatis SQL是如何执行的?把这篇文章甩给他

苹果看辽宁体育

mybatis

工厂模式 (一)简单的工厂模式概念以及示例代码

LSJ

Golang热更新原理

我心依然

nginx Linux 信号 Go 语言

李想解读《高效能人士的七个习惯》

我心依然

习惯 高效能人士的七个习惯 李想 汽车之家

一文带你彻底厘清 Kubernetes 中的证书工作机制

首富手记

Kubernetes

Flutter的staggered GridView详细使用

潘珉

flutter

[GitHub] 跟我一起白嫖 GitHub Pages 做个人站点 ?

猴哥一一 cium

git GitHub GitHub Pages

翻译敏捷行业专业外文,不只是谷歌翻译

老彦

翻译 Scrum 敏捷开发 Agile

数仓系列 | Flink 窗口的应用与实现

Apache Flink

大数据 flink 流计算 实时计算

游戏夜读 | 如何避免乏味?两则

game1night

内容比形式更重要

Winann

内容 生活 工作 形式主义

关于问题的问题 —— 读《你的灯亮着吗?》

YoungZY

读书笔记 读书

2020年2月北京BGP机房网络质量评测报告

博睿数据

2020年2月北京BGP机房网络质量评测报告

博睿数据

APM 机房 评测 世纪互联

学计算机你后悔了吗?

陈辰

学习 技术 大前端

实用贴丨正确的「递归」打开方式:让计算机像计算机一样去计算

博文视点Broadview

Python 递归

Kubectl exec 的工作原理解读

硅基新手村

Kubernetes kubelet

软件开发生产率改进之我见(一)

清水

团队管理 软件工程 技术管理

有点干货 | Jdk1.8新特性实战篇(41个案例)

小傅哥

函数式接口 Lambda 小傅哥 jdk8 编码

五个“为什么” —— 读《精益创业》

YoungZY

读书笔记

有价值的产品=设计思维+精益创业+敏捷方法

老彦

Scrum 敏捷开发 Agile 设计思维 精益创业

ARTS - Week One

shepherd

js algorithm

基于mysqldump聊一聊MySQL的备份和恢复

麦洛

MySQL

「开放」对协作效率的影响

Tony Wu

产品 产品设计

给学妹的 Java 学习路线

武培轩

Java 学习 程序员 程序媛

Elasticsearch 实战

代码诗人

python实现·十大排序算法之希尔排序(Shell Sort)

南风以南

Python 排序算法 希尔排序

Zabbix实战指南

橙子冰

技术 运维 监控 运维自动化 zabbix

Lean UX 教你设计如何驱动产品

Yanel 说敏捷产品

产品 敏捷 设计

[Git] Git 可以这么学

猴哥一一 cium

git

Swift 5进入发布倒计时_开源_Sergio De Simone_InfoQ精选文章