Kotlin 1.5.0 – 2021 年的首个大版本

欢迎新版本计划表的第一个功能版本 —— Kotlin 1.5.0 

这个版本提供了稳定的语言特性,如 JVM records,密封接口,内联值类,并包括了新的默认的 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 还有什么疑问? 在 5 月 25 日的 Kotlin 在线活动,Roman ElizarovSvetlana Isakova,以及其他 Kotlin 团队的成员,已准备就绪回答您的问题。

Kotlin 1.5 在线活动登记


在这篇博文中,您将会看到以下内容的概述:

自动升级到 Kotlin 1.5.0

如果您使用的是 IntelliJ IDEA 或 Android Studio,您可以通过它提供的选项,当 Kotlin 的新版已就绪,将自动升级到最新的版本。

了解更多有关 Kotlin 1.5.0 安装的信息。

稳定的语言特性

Kotlin 1.5.0 包含了在 1.4.30 中提供预览的新语言特性的稳定版本:

  • 对 JVM records 的支持以及保持和 Java 最新特性—— record 类的互操作性。 要将 Kotlin 类编译为 Java 代码中的 record,将其声明为 data 类,并通过 @JvmRecord 注解标记:@JvmRecord data class User(val name: String, val age: Int)了解使用 JVM records 所需条件的更多信息。
  • 密封接口 sealed 修饰符在接口与在类上的原理相同——密封接口的所有实现在编译时均为已知状态。
  • 密封类的改进 以前,所有子类都必须与密封类放在同一个文件中。 现在它们可以位于相同编译单元和相同程序包的任意文件中。
  • 内联类是只包含值为基础类型的类的子集。 您可以用它们为某个指定类型的值进行封装,而不会因为内存分配而产生额外的开销。 通过 value 修饰符进行声明。

了解更多有关 Kotlin 1.5.0 语言特性的信息

标准库及测试库的改进

无符号整数类型的新稳定API是最令人期待的 Kotlin 1.5.0 库改进,这是根据我们在 Kotlin 1.5.0-RC 博文中调查所得的结果。

标准库提供了许多有用的功能,包括:

  • 用于无符号整数类型的新稳定 API,以及它们的范围,级数和函数。 了解更多有关无符号整型的信息。
  • java.nio.file.Path 的扩展函数,以 Kotlin 惯用风格调用的现代非阻塞 Java IO
  • String 和 Char API 的改进,包括用于更改字符串和字符大小写的新的与语言环境无关的 API,用于在字符及其整数代码和数值之间进行转换的一组新函数,以及更多兼容多平台的 char 函数。
  • Duration API 变动,包括内部使用 Long 值表示,并提供新的属性以获取 duration 的 Long 值。

测试库带来了一系列重要的改进:

  • 只需要在多平台项目的公共源集里对 kotlin-test 进行单次依赖。
  • 当您指定唯一的 kotlin-test 依赖项时,会自动为 Kotlin/JVM 源集选择测试框架。
  • 大量断言函数的更新。

了解更多有关库改善的信息。

Kotlin/JVM

Kotlin 1.5.0 带来了:

Kotlin/Native

Kotlin 1.5.0 提供了:

  • 在 linuxX64 和 iosArm64 目标的调试模式下支持编译器缓存。 当编译器缓存启用,除第一次调试编译外,大部分调试编译的速度都将更快。 测量结果表明,我们测试项目的编译速度提高了200%
  • 停用内置的内存泄漏检查器,以避免可能导致的应用程序崩溃问题。 了解如何启用内存泄漏检查器(如有必要)。

Kotlin/JS

Kotlin/JS 的 新 Kotlin/JS IR 编译器迈向 Beta 。 许多著名的框架和库 KVisionfritz2doodle 等等已向 IR 编译器敞开怀抱。

如果您是库的作者,则可以通过向后兼容性库迁移来添加您的库。

另一个额外的改进是通过 webpack 5 而非 webpack 4 来构建 JS bundle 包。

如何安装 Kotlin 1.5.0

如果您使用的是 IntelliJ IDEA 或 Android Studio,它会建议在版本发布后自动更新 Kotlin 到 1.5.0。 您也可以按照说明手动更新。

您仍然可以下载这些 IDE 的最新版本以保证对 Kotlin 的全面支持:

  • 用于为不同平台开发 Kotlin 应用程序的 IntelliJ IDEA
  • 用于开发 Android 和跨平台的移动应用程序的 Android Studio

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

如果需要命令行编译器,请在 GitHub 版本页面下载。

如果遇到任何问题

Kotlin 1.5 在线活动

参加 5 月 25 日的 Kotlin 1.5 在线活动,Kotlin 团队将回答您对最新版本的所有问题。 您可以询问任何想知道的事情,或者您没有任何问题,只对回答感兴趣,那也不错。 活动将持续1.5小时。

通过 #kotlin15ask 在 Twitter 上发布您的问题,或在表格中添加你的问题。

Kotlin 1.5 在线活动登记

我们还将于 5 月 27 日至 28 日在 Reddit 上进行 “Ask Me Anything”(AMA) 讨论,以处理所有未解决的问题,同时也会回答新问题。

兼容性

与所有主要版本一样,某些先前宣布的变更的弃用周期将在 Kotlin 1.5.0 版本结束。 所有这些情况都经过了语言委员会的仔细审查,并在 Kotlin 1.5 兼容性指南中列出。 您也可以在 YouTrack 上浏览这些变更。

更多的观看及阅读材料

观看Kotlin YouTube:

阅读 Kotlin 博客:

通过 Kotlin 文档了解更多信息:

外部贡献者

我们要感谢👏👏👏所有外部贡献者,此版本中包含了他们的 Pull Request:

Jinseong JeonMads AgerIvan GavrilovicpyosSteven SchäferIaroslav PostovalovscaventzKristoffer AndersenBingranStefan WolfVictor Turanskyfjjohnchenjustin.weiNelson OsackyMikhail GalaninMichael HoisieKris HallKevin BierhoffJiaxiang ChenHung NguyenCedric Champeau.

YouTrack 的最佳问题报告者

我们要感谢👏👏👏社区的所有成员,他们通过向 YouTrack 报告问题帮助我们改进了此版本! 我们列出了前 20 名报告者,在此向他们致以衷心感谢:

Morgan Bartholomew (118 个问题); Marc Knaup (78 个问题); Ryan Nett (61 个问题); Louis CAD (48 个问题); Daniil Stepanov (44 个问题); AndroidDeveloperLB (39 个问题); Victor Turansky (38 个问题); Jinseong Jeon (35 个问题); Zac Sweers (25 个问题); Łukasz Wasylkowski (22 个问题); Tianyi Guan (21 个问题); Christoph Sturm (20 个问题); Axel Fontaine (19 个问题); Alexander Nozik (18 个问题); Robert Stoll (18 个问题); Björn Kautler (18 个问题); Róbert Papp (14 个问题); Andreas Malik (14 个问题); Lorenzo Neumann (14 个问题); Iaroslav Postovalov (14 个问题).


安装 Kotlin 1.5.0 注册参加 Kotlin 1.5 在线活动

此条目发表在官方分类目录。将固定链接加入收藏夹。

发表评论

邮箱地址不会被公开。 必填项已用*标注