Kotlin 1.5.0 - 2021的第一个大发布

2021-05-05 20:47:26

欢迎符合新版本的第一个功能释放 - Kotlin 1.5.0!

此版本提供稳定的语言功能,例如JVM记录,密封接口,内联类,并包含新的默认默认JVM IR编译器。您对Kotlin 1.4.30和Kotlin 1.5.0 EAP版本的特征预览的反馈真的帮助我们稳定了这些功能。我们非常感谢您的帮助!谢谢!

超过25,000名开发人员已经在Intellij Idea中尝试了新的JVM IR编译器。

你会随着时间的推移注意到好处。新的编译器与Kotlin / Native和Kotlin / JS IR编译器共享一个统一的管道和业务逻辑,这将使我们能够同时为所有平台实现所有平台的大多数功能,优化和错误修复。它还允许您添加将自动在所有平台上工作的自定义处理和转换。

您对Kotlin 1.5.0有疑问吗? Roman Elizarov,Svetlana Isakova和Kotlin团队的其他成员将在Kotlin 1.5在线活动期间在5月25日在5月25日回答您的问题。

标准和测试库的改进,包括稳定的无符号整数类型,java.nio.file.path的扩展,以及字符串,char和持续时间api的改进。

如果您使用的是Intellij Idea或Android Studio,它将可以选择在可用后立即自动更新新的Kotlin版本。

Kotlin 1.5.0包括在1.4.30中提供预览的新语言功能的稳定版本:

支持JVM记录与最新的Java功能 - 记录类保持互操作。要使用Kotlin类作为Java代码中的记录,使其成为数据类并将其标记为@jvmrecord注释:

密封界面。密封修饰符在接口上工作,与类工作相同的方式 - 密封接口的所有实现在编译时都是已知的。

密封的课程改进。以前,所有子类必须在具有密封类的同一文件中。现在,它们可以在相同编译单元和同一个包的所有文件中。

内联类是仅存值的基于值的类的子集。您可以将它们用作包装器,以获得某种类型的值,而无需使用内存分配来额外的开销。使用“声明”值修饰符。

无符号整数类型的新稳定API是基于我们在Kotlin 1.5.0-RC博客帖子中进行的调查的最预期的Kotlin 1.5.0库改进。

用于无符号整数类型的新稳定API以及它们的范围,进展和函数。了解有关无符号整数的更多信息。

java.nio.file.path的扩展函数以kotlin-idiomatic styled使用现代非阻塞Java IO。

字符串和Char API改进包括用于更改字符串和字符的新的语言环境-Abnostic API,这是一个用于字符与其整数代码和数值之间的转换的新功能以及用于更多CHAR功能的多平台支持。

持续时间API更改包括使用长值的内部表示,并提供用于将持续时间作为长值检索的新属性。

当您仅指定Kotlin-Test依赖项时,为Kotlin / JVM源设置的测试框架自动选择。

新的JVM IR编译器在Kotlin 1.4.0中宣布,变得稳定和默认。了解有关博客文章和文档中的新编译器的更多信息。

将SAM适配器和LAMBDA的编译成动态调用(InvokeDynamic),这是最新的JVM功能的好处。 Kotlin Plang Lambdas的汇编是实验性的。

支持Linux34和IOSARM64目标的调试模式下的编译器缓存。启用编译缓存,大多数调试编译更快,除了第一个。测量显示我们的测试项目增加了200%的速度增加。

取消激活内置内存泄漏检查器以避免可能导致应用程序崩溃的问题。如果需要,了解如何激活内存泄回检查器。

Kotlin / JS旨在推广新的Kotlin / JS IR编译器到Beta。许多知名的框架和图书馆已经适用于IR编译器:KVISION,FRITZ2,DOODLE等。

如果您是库作者,则可以通过使用向后兼容性迁移库来将库添加到这些内容。

如果您已经使用Intellij Idea或Android Studio,它将建议在发布结果后自动更新Kotlin至1.5.0。您还可以按照以下说明手动更新它。请注意,只有Android Studio 4.2.0,北极Fox Canary 15,稍后版本支持Kotlin 1.5.0。

您可以随时下载最新版本的这些IDE以获得对Kotlin的广泛支持:

确保您还将Kotlinx库更新为兼容版本,并在现有项目的构建脚本中指定了Kotlin 1.5.0版。

加入5月25日的Kotlin 1.5在线活动,Kotlin团队将回答有关最新版本的所有问题。您可以询问您想要了解的任何内容,或者如果您没有任何疑问,也没有对答案感兴趣,那也很棒。该活动将持续1.5小时。

在Twitter上发布您的问题与#kotlin15ask或在注册表中添加您的问题。

我们还将在5月27日至28日在Reddit上向我发表询问(AMA)会议,以解决未经答案的任何问题以及答案也是任何新的问题。

与所有功能版本一样,先前宣布更改的一些弃用周期即将到来与Kotlin 1.5.0结束。语言委员会仔细审查了所有这些案件,并列入了Kotlin 1.5的兼容性指南。您还可以探索YouTrack上的这些更改。

订阅Kotlin Youtube,以避免缺少有关Coroutines和序列化库的新改进的视频。

我们要感谢您所有的外部贡献者,其中包括拉出请求的此版本:

我们要感谢所有帮助我们的社区的所有成员通过向yourtrack报告问题提出更好的释放!我们列出了前20名记者的名单,并希望特别感谢他们:

摩根巴塞洛缪(118个问题); Marc Knaup(78个问题); Ryan Nett(61个问题);路易CAD(48个问题); Daniil Stepanov(44个问题); androiddeveloperlb(39个问题); Victor Turansky(38个问题);金通·埃(35个问题);扎克糖粉(25个问题); Łukaszwasylkowski(22个问题);天翼关(21个问题); Christoph Sturm(20个问题); Axel Fontaine(19个问题); Alexander Nozik(18个问题); Robert Stoll(18个问题); BjörnKauterler(18个问题); róbertpapp(14个问题); andreas malik(14个问题); Lorenzo Neumann(14个问题); Iaroslav Postovalov(14个问题)。