写点什么

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:232223
用户头像

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

关注

评论 1 条评论

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

Fabric.js 手动加粗文本iText

德育处主任

canvas FabricJS 6月月更

openGauss Developer Day 2022正式开启,与开发者共建开源数据库根社区

如何低成本构建一个APP

Geek_99967b

小程序

C语言自定义类型的介绍(结构体,枚举,联合体,位段)

未见花闻

6月月更

JVM调优简要思想及简单案例-怎么调优

zarmnosaj

6月月更

什么是数据中台

奔向架构师

数据中台 数据仓库 6月月更

uni-app进阶之认证【day12】

恒山其若陋兮

6月月更

linux存储结构与磁盘划分

乌龟哥哥

6月月更

SLSA: 成功SBOM的促进剂

安势信息

开源 开源软件供应链 软件物料清单 SBOM SLSA

微信视频号如何用 PC 电脑做直播?

boshi

直播 视频号

Flutter中的GetX状态管理用起来真的那么香吗?

岛上码农

flutter ios 移动端开发 安卓开发 6月月更

一文简述:供应链攻击知多少

穿过生命散发芬芳

供应链攻击 6月月更

一款支持内网脱机分享文档的接口测试软件

Xd

Java 后端 接口测试工具

Android 11适配指南之Toast解析

yechaoa

android 适配 6月月更 11.0

华为云低时延技术的九大绝招

坚果

6月月更

Java中使用正则检查有效日期

okokabcd

Java

给你讲懂 MVCC

Nick

MySQL 源码 MVCC 6月月更 深入解析

小程序容器到底是什么

Geek_99967b

国内外最好的12款项目管理系统优劣势分析

爱吃小舅的鱼

Java Core 「16」J.U.C Executor 框架之 ScheduledThreadPoolExecutor

Samson

学习笔记 Java core 6月月更

一次 MySQL 误操作导致的事故,「高可用」都顶不住了!

悟空聊架构

MySQL 高可用 悟空聊架构 6月月更 事故复盘

事件

Jason199

js 事件 6月月更

RabbitMQ访问Web端口报错User can only log in via localhost

龙空白白

远程办公之:如何成为时间管理大师?| 社区征文

甜甜的白桃

初夏征文

开发协同,高效管理 | 社区征文

武师叔

初夏征文

ribbon

卢卡多多

6月月更

apipost接口断言详解

Xd

Java 接口测试工具

讲讲我的不丰富的远程办公经验和推荐一些办公利器 | 社区征文

Regan Yue

远程办公 初夏征文

脚本之美│VBS 入门交互实战

Windows Server 6月月更 VBS 脚本之美

RabbitMQ基础知识

龙空白白

RabbitMQ

浅谈如何运营好小红书账号:利用好长尾词理论

石头IT视角

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