Kotlin 2.1:新版本发布——变化内容及如何更新

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

Kotlin 2.1 发布:语言和工具有哪些新内容



2024 年 11 月 16 日,JetBrains 公司发布了 Kotlin 2.1.0 稳定版——这是一次重大更新,继 2.0 版本革命性地过渡到 K2 编译器之后,继续推动语言的发展。新版本不仅修复了错误,还引入了一系列期待已久的实验性功能。我们来为开发者分析主要变化。



K2 稳定化:这对开发者意味着什么

主要消息是,K2 编译器在 Kotlin 2.0 中是可选的,现在已成为 JVM 和多平台项目的主要编译器。K2 提供:

  • 显著加快构建速度(大型项目可达 2-3 倍);
  • 改进的类型推断(type inference)——减少显式注解;
  • 更准确且更清晰的错误消息;
  • 完全支持 Kotlin Multiplatform (KMP) 和 Compose Multiplatform。

使用 Gradle 的开发者只需将 Kotlin 插件更新到 2.1.0 版本——K2 将自动激活。



新的实验性语言功能

2.1 版本引入了几个预览功能,可通过 @OptIn 注解使用。以下是最有趣的功能:

  • 非局部 break/continue ——现在可以在传递给内联函数的 lambda 表达式中使用 break 和 continue。这简化了函数式风格中循环的使用。
  • 显式后备字段 ——一种新结构,用于在 getter/setter 内部直接访问属性字段而无需递归调用。简化了委托属性的编写。
  • lambda 中的命名参数 ——对 lambda 参数的命名参数的实验性支持。使包含多个 lambda 的代码更具可读性。


Kotlin Multiplatform 的改进

Kotlin 2.1 是多平台开发的重要一步。关键变化:

  • 标准库完全支持 expect/actual ——现在可以直接在 commonMain 中声明平台相关函数。
  • 改进了与 CocoaPods 和 Swift Package Manager 的集成,用于 iOS 目标。
  • Android 的新配置模式:自动为现代 AGP (Android Gradle Plugin) 8.x 配置 source sets。


Compose Multiplatform 的更新

对于 UI 应用程序开发者,该版本引入了对 Resource API 的支持——一种在 Compose Multiplatform 中处理资源(图像、字符串、字体)的新方式。现在可以将资源放置在公共模块中,插件会自动为每个平台生成类型安全的引用。这简化了具有统一绘制逻辑的跨平台应用程序的创建。



如何更新到 Kotlin 2.1

对于使用 Gradle 的项目,更新非常简单。在 build.gradle.kts 中添加:

plugins {    kotlin("jvm") version "2.1.0"    // 或 kotlin("multiplatform") version "2.1.0"}

JetBrains 建议在更新前使用 --warning-mode all 标志运行项目,以检查与新编译器的兼容性。对于 Int

推荐库