Kotlin 2.3.20已成为JetBrains构建的编程语言的最新版本,新增了C或Objective-C库的互操作模式以及基于属性名称的解构声明功能。开发者现在还可以在JavaScript和TypeScript中使用Kotlin接口。
这项Java竞争语言的更新于3月16日发布。开发者可以在Kotlin官网找到入门指南。通过2.3.0版本中的Kotlin Native技术,开发者可以将Kotlin代码编译为原生二进制文件,并尝试针对Objective-C和C库的实验性互操作模式。这项功能面向在Kotlin多平台库或应用程序中使用C或Objective-C库的开发者。
一般来说,Kotlin Native支持将C和Objective-C库导入到Kotlin中。然而,对于KMP库而言,该功能目前受到KMP与旧编译器版本兼容性问题的影响。因此,如果使用某个Kotlin版本编译的KMP库被发布,导入C或Objective-C库可能会导致该Kotlin库无法在使用早期Kotlin版本的项目中使用。为了解决这个问题和其他相关问题,Kotlin团队一直在修订互操作机制。从Kotlin 2.3.20开始,开发者可以通过编译器选项尝试新模式。
Kotlin 2.3.20还引入了基于名称的解构声明,通过匹配变量与属性名称来工作,而不是依赖基于位置的componentN()函数。JetBrains表示,此前解构声明使用的是基于位置的解构。
该更新解除了在JavaScript和TypeScript端实现Kotlin接口的限制。JetBrains说,以前只能将Kotlin接口导出为TypeScript接口,而从TypeScript实现这些接口是被禁止的。此外,从Kotlin 2.3.20开始,Kotlin/JS支持基于Rust的SWC编译平台。这有助于将较新版本的JavaScript和TypeScript代码转译为较旧且更兼容的JavaScript代码。
Kotlin 2.3.20是继2025年12月发布的Kotlin 2.3.0和2月发布的Kotlin 2.3.10之后的最新版本。Kotlin 2.3.20的其他更新包括:
在Java互操作性方面,编译器现在可以识别Vert.x @Nullable注解进行空值检查。该版本还增加了对Java @Unmodifiable和@UnmodifiableView注解的支持,将注解集合在Kotlin中视为只读。
在Maven构建工具项目中设置Kotlin变得更加容易。现在,Kotlin支持源根目录和Kotlin标准库的自动配置。
Kotlin 2.3.20与Gradle构建工具7.6.3至9.3.0版本完全兼容。开发者也可以使用最新Gradle发布版本,但这样做可能会导致弃用警告,某些新的Gradle功能可能无法正常工作。
用于生成和使用Java Lombok声明的Lombok编译器插件已升级至Alpha状态。计划让这项功能达到生产就绪状态,但目前仍在开发中。
引入了Map.Entry.copy()扩展函数,用于创建Map.Entry的不可变副本。该函数允许通过首先复制条目来重用从Map.entries获得的条目,然后修改映射。
Q&A
Q1:Kotlin 2.3.20新增了什么重要的互操作功能?
A:Kotlin 2.3.20新增了C或Objective-C库的实验性互操作模式,主要面向在Kotlin多平台库或应用程序中使用C或Objective-C库的开发者。同时解除了在JavaScript和TypeScript端实现Kotlin接口的限制,开发者现在可以从TypeScript实现Kotlin接口。
Q2:什么是基于名称的解构声明功能?
A:基于名称的解构声明是通过匹配变量与属性名称来工作,而不是依赖基于位置的componentN()函数。这改变了此前解构声明使用基于位置的解构方式,使得变量匹配更加直观和灵活。
Q3:Kotlin 2.3.20对构建工具的兼容性如何?
A:Kotlin 2.3.20与Gradle构建工具7.6.3至9.3.0版本完全兼容,也可以使用最新的Gradle发布版本。在Maven方面,现在支持源根目录和Kotlin标准库的自动配置,使得在Maven项目中设置Kotlin变得更加容易。
好文章,需要你的鼓励
穆拉蒂时隔18个月首次接受重大媒体采访,介绍其创立的Thinking Machines Lab正在开发的"交互模型"。该模型能以200毫秒间隔处理音频、文本和视频流,捕捉人类交流中的中断、修正和停顿。她还谈及OpenAI"政变周"经历,强调行业决策权过于集中的担忧,并回应了公司近期研究人员离职问题,表示这是初创实验室的正常波动。
STATE16研究院这篇综述发现,物理AI系统存在"静默失效"风险——AI以高度自信执行基于错误世界信息的动作,却不触发任何报警,并提出在AI输出与物理执行之间建立独立授权层的框架。
本期《Quick Charge》播客涵盖多个热点话题:特斯拉疑似试图删除FSD欺诈相关证据以规避巨额赔付;卡特彼勒持续推进建筑领域电气化布局;住宅太阳能30%税收抵免即将到期。此外,嘉宾Tom Pacheco就高压系统与电池技术培训展开探讨,强调电动车技术人才培养的紧迫性。节目同时提醒有意安装太阳能的用户尽快行动,可通过EnergySage平台比较多家安装商报价。
UIUC与微软联合研发的OpenWebRL框架让4B小模型仅凭400条初始数据,通过在真实网站上边做边学的强化学习方式,在网页智能体基准上超越了用27万条数据训练的竞争对手。