Kotlin 2.1 新版本发布:主要变化与新特性
JetBrains 团队正式发布了 Kotlin 2.1 稳定版。此次更新继续致力于提升性能、稳定性和开发便利性。2.1 版本接替了此前发布的 2.0 版本,既包含期待已久的修复,也带来了可以在生产项目中试用的实验性功能。我们来详细了解具体的变化内容以及它们对每位 Kotlin 开发者的重要意义。
K2 编译器:现已默认启用
此版本最重要的变化是 K2 编译器已成为标准配置。在 2.0 版本中,需要通过单独的标志启用,而现在它已默认对所有多平台项目生效。这带来了以下优势:
- 显著加快构建速度(某些项目可提升至 2 倍);
- 更清晰、更易于理解的错误消息;
- 改进了对新语言结构的支持。
伴随此次更新,与 Gradle 8.x 和 Android Gradle Plugin 的兼容性也大幅提升,使迁移过程更加顺畅。
实验性功能:新增了哪些内容
Kotlin 2.1 扩展了实验性功能集。其中值得关注的有:
- when 表达式中的守卫条件 — 现在可以在 when 分支中使用关键字
guard添加额外检查。这使得复杂的模式匹配更具可读性,并减少了嵌套 if 的数量。 - 非局部 break 和 continue — 期待已久的从 lambda 表达式中中断循环的能力。此功能需要在启用相应编译器标志时才能使用。
- 上下文抽象扩展 — 改进了对上下文函数和类型别名的支持,简化了 DSL 结构的编写。
所有实验性功能都需要通过 @OptIn 注解显式选择启用,因此可以安全地进行测试,无需担心破坏向后兼容性。
标准库 (stdlib) 的变化
JetBrains 开发者继续对 stdlib 进行优化和扩展。以下是关键点:
- 新增了用于集合操作的新函数:
chunked和windowed现在支持惰性迭代; - 改进了 Sequence 的性能——filter 和 map 操作的运行速度提升高达 30%;
- 更新了 JSON 相关函数 (kotlinx.serialization):增强了对多态性和密封类序列化的支持。
针对 Android 开发者的改进
Kotlin 2.1 包含了直接影响 Android 项目的修复:
- 完全兼容 Android Studio Meerkat 和 Hedgehog;
- 修复了将 Compose 与新编译器一起使用时出现的罕见崩溃;
- 改进了对 R8/ProGuard 的支持——现在混淆处理在与多平台库配合使用时更加准确。
如何更新
要升级到 Kotlin 2.1,只需更改 build.gradle.kts 或 pom.xml 中的插件版本即可:
id("org.jetbrains.kotlin.jvm") version "2.1.0"
对于 Maven,更新 kotlin-maven