JetBrains 发布 Kotlin 2.3.0,本版本重点在于语言功能的稳定与多平台工具链的进展,涵盖 JVM、原生、WebAssembly 和 JavaScript 等目标平台。此版本一方面推动部分语言特性走向更明确的默认行为与稳定状态,另一方面带来跨平台互通、构建效率与兼容性等方面的更新,帮助开发者在不同运行环境中保持一致的开发与部署节奏。
Kotlin 2.3.0 将嵌套类型别名以及 when 表达式的数据流穷尽性检查提升为稳定功能,同时将具有表达式主体且显式声明返回类型的函数允许使用 return 语句设为默认行为。为降低开发者因忽略函数返回值而意外出错的风险,官方新增了未使用返回值检查器及相关注解,用于提示返回值未被使用的情况。
另一方面,2.3.0 提供仍处于实验阶段的显式后备字段语法,允许在属性对外暴露的类型与内部实现类型不一致时,以更直接的方式表达和维护。至于上下文解析功能,官方持续修正其解析范围与判定逻辑,并在可能引起歧义的情况下添加警告提示。
在 Kotlin/JVM 方面,2.3.0 开始支持生成 Java 25 字节码。Kotlin 原生端则强化了与 Swift 的互操作能力,通过 Swift 导出机制新增对原生枚举和可变参数的支持,同时将 C 与 Objective-C 库的导入推进至 Beta 测试阶段,并优化了正式发布(Release)构建性能。JetBrains 也同步提高了 iOS、tvOS 和 watchOS 的最低支持版本,并将多个 x86_64 的 Apple 目标平台下调至较低支持等级,依赖 Intel 目标的项目需尽早规划后续维护与迁移工作。
Kotlin WebAssembly 方面,2.3.0 默认启用 KClass.qualifiedName,使完整类名可在运行时获取,从而减少从 JVM 迁移至 WebAssembly 时在诊断和程序行为上的差异。至于异常处理机制,2.3.0 仅在 wasmWasi 目标下默认采用新版 WebAssembly 异常处理提案,wasmJs 目标仍默认关闭,必要时可通过编译器选项启用。
Kotlin JavaScript 新增两项面向互操作性的变更:实验性支持直接将 suspend 函数导出供 JavaScript 使用,以及提供以 BigInt64Array 表示 LongArray 的选项,便于对接偏好使用类型化数组的 JavaScript API。
工具链方面,Kotlin 2.3.0 完全兼容构建工具 Gradle 7.6.3 至 9.0.0,并新增用于注册生成代码源的 Gradle API,旨在帮助 IDE 更好地区分生成代码与手写代码。支持 2.3.0 的 Kotlin 插件已随最新版 IntelliJ IDEA 和 Android Studio 提供,标准库也将时间追踪能力提升为稳定功能,并扩展了仍处于实验阶段的 UUID(通用唯一标识符)生成与解析功能。