Swift 4.1 Released!

Swift4.1已正式发布,引入了更多泛型支持,并对SwiftPackageManager及Foundation进行了改进。此外,还实现了多项SwiftEvolution提议,如ConditionalConformance、Sequence.compactMap等。编译器支持新的代码大小优化模式,且与Swift4.0源代码兼容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Swift 4.1现已正式发布!它包含核心语言的更新,包括对泛型,新构建选项的更多支持,以及对Swift Package Manager和Foundation的小改进。在稳定ABI方面也取得了重大进展。

Doug Gregor和Ben Cohen最近在Swift Unwrapped播客的两部分集中讨论了许多这些功能。查看这里的播客:第1部分第2部分

编译器更新

Swift 4.1是一个小语言版本。它与Swift 4.0的源代码兼容。它包含以下语言更改和更新,其中大部分都通过了Swift Evolution process

语言改进

Swift 4.1为该语言增加了更多的泛型特性,进一步推进了Swift Generics Manifesto中提出的目标。以下与泛型相关的提案已在本版本中实施:

有关在Swift 4.1中所取得进展的更多信息,请查看此博客文章

构建改善

此版本提供了更多配置构建的方式,包括新的代码大小优化以及指定目标环境和平台支持的更简单的方法。

代码大小优化模式

编译器现在支持一种新的优化模式,该模式支持专用优化以减少代码大小。

这在此博客文章中更详细地讨论过。

构建导入测试

canImport()平台的参数可能不是所有平台上都存在。此条件下的测试不管是否导入模块,都不实际导入它。如果模块存在,则平台状况返回true; 否则,它返回false。

请参阅:SE-0075 Adding a Build Configuration Import TestConditional Compilation Block

目标环境条件

代码编译为模拟器时,targetEnvironment(simulator)平台条件返回true; 否则,它返回false。

有关更多信息,请参见:SE-0190 Target environment platform conditionConditional Compilation Block

Foundation

这些JSONEncoder和JSONDecoder类现在支持在编码和解码期间转换密钥的新策略。

这个论坛帖子中有更详细的讨论。

其他更新

这些是在此版本中实施的其他Swift Evolution提议:

ABI稳定性

Swift 4.1包含了许多内部变化,这些变化是稳定Swift 5中ABI的努力的一部分。以下是本版本中完成的任务列表:

有关Swift的ABI稳定性进度的更多信息,请查看ABI仪表板

程序包管理器增强

在Swift 4.1中对Swift Package Manager有一些改进:

Swift Package Manager现在可以正确解决使用不同URL方案(例如ssh和)的软件包图形的依赖性http。对于具有共享依赖性的包图,性能得到了显着改善。

迁移到Swift 4.1

Swift 4.1与Swift 4.0是源代码兼容的。为了帮助从早期版本的Swift移植到Swift 4.1,Apple的Xcode 9.3包含一个代码迁移器,可以自动处理许多所需的源代码更改。还有一个迁移指南可用于指导您完成许多更改 - 特别是通过那些机械性较差并需要更直接审查的[迁移指南].

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值