HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

Kotlin 1.9.0 发布:带来多项新的语言特性,改进 Multiplatform/Native 支持

  • 2023-08-03
    北京
  • 本文字数:2251 字

    阅读完需:约 7 分钟

Kotlin 1.9.0 发布:带来多项新的语言特性,改进Multiplatform/Native支持

Kotlin 的最新版本引入了许多新的语言特性,包括用于开放范围的…<操作符、扩展正则表达式等。此外,它还改进了 Kotlin Multiplatform 和 Kotlin/Native 支持。


Kotlin 1.9 稳定了与枚举类关联的 entries 属性,它会返回所定义的枚举常量的所有值的列表。entries 弃用了 values(),它不再每次分配一个新数组,而是采用了预分配的值列表,提升了性能。


另一个小的语言特性是新引入了用于表示开放范围的…<操作符。JetBrains 表示,这个新语法可以让不包括上限的情况看起来更清晰。


在 Kotlin 1.9 中,正则表达式变得更加灵活,这要归功于一个新的函数 group。该函数可以按名称检索正则表达式组。如下所示,可以用几个命名组定义正则表达式:


val regex = """\b(?<city>[A-Za-z\s]+),\s(?<state>[A-Z]{2}):\s(?<areaCode>[0-9]{3})\b""".toRegex()
复制代码


然后使用组名来访问匹配的值:


val match = regex.find(input)!!println(match.groups["city"]?.value)// Austinprintln(match.groups["state"]?.value)// TXprintln(match.groups["areaCode"]?.value)
复制代码


Kotlin 1.9 还改进了对 Kotlin/Native 和 Kotlin Multiplatform 的支持。


在 Kotlin/Native 中,现在可以预览自定义内存分配器了,其目的是提高 Kotlin/Native 内存管理器的运行时性能。自定义分配器将系统内存划分为多个页,并允许按顺序单独进行清理。使用编译器选项-Xallocator= Custom 可以启用自定义内存分配器。


Objective-C/Swift 互操作性也得到了改善,这要归功于新引入的 Objective-C/Swift 对象释放策略。现在,对象释放会在适当的时候在主线程上进行,减少了内存泄漏的机会。


Kotlin 1.9 的其他新特性还包括:可以为 iOS 模拟器测试配置独立的 iOS 模式;可以跨 Kotlin JVM 和 Kotlin/Native 对链接问题进行统一处理。特别是,当存在链接问题时,构建将不再失败。


再来看下 Kotlin Multiform。它包括 Gradle 配置缓存预览,以及改进 Android 目标支持,为谷歌新开发的一个 Gradle 插件铺平了道路。


最后,关于 Kotlin 1.9,值得一提的是,它包含面向 JVM 的新的 K2 编译器的 Beta 版本,旨在提供更好的性能,加快语言特性开发,并为多平台对象提供更好的架构。在 Kotlin 2.0 中,K2 将成为稳定版本,并成为默认的编译器。


以下是 Kotlin 1.9 的详细变更信息全部官方声明。


Kotlin 1.9.0 版本现已发布,适用于 JVM 的 K2 编译器目前处于测试版阶段。 这个版本包含新的语言功能以及针对 Kotlin Multiplatform 和 Kotlin/Native 的改进。


以下是此版本的一些亮点:


  • 新的 Kotlin K2 编译器更新

  • 枚举类值函数的稳定替换

  • 开放范围的稳定 ..< 运算符

  • 通过名称获取正则表达式捕获组的新通用函数

  • 用于创建父目录的新路径实用函数

  • Kotlin Multiplatform 中的 Gradle 配置缓存预览

  • Kotlin Multiplatform 中对 Android 目标支持的更改

  • Kotlin/Native 中自定义内存分配器的预览

  • Kotlin/Native 中的库链接

  • Kotlin/Wasm 中的大小相关优化


有关完整的更改列表,请参阅 Kotlin 1.9.0 最新变化或 GitHub 上的版本说明:


https://github.com/JetBrains/kotlin/releases/tag/v1.9.0


适用于 JVM 的新 Kotlin K2 编译器进入测试版阶段


JetBrains 的 Kotlin 团队持续稳定新的 K2 编译器,我们很高兴地宣布,在我们迈向 Kotlin 2.0 版本的旅程中,适用于 JVM 的新 Kotlin K2 编译器达到了测试版里程碑。 编译器已经过彻底测试,成功编译了 Kotlin 团队用于质量保证的大量项目。


K2 编译器旨在带来重大性能改进,加快新语言功能的开发,统一 Kotlin 支持的所有平台,并为多平台项目提供更好的架构。


我们在促进与其他流行编译器插件的兼容性方面取得了巨大进步。 对 Kotlin Symbol Processing (KSP) 和 Jetpack Compose 的支持即将推出,预计很快集成 K2 支持。 我们邀请您在 Kotlin/JVM 项目上测试 K2,并在我们的问题跟踪器中分享您的宝贵反馈。 您的意见将帮助我们完善 K2,使其在 Kotlin 2.0 中成为默认的稳定编译器。


我们的目标还不止于此。 我们希望通过 K2 编译器实现同样高质量的多平台支持。 这一愿景与我们在 Kotlin Multiplatform 稳定性方面的持续努力相符合。 我们的目标是在 Kotlin Multiplatform 稳定版本发布的同时,在 K2 中实现对多平台项目的完全测试版品质支持。


我们热切期待您的反馈,同时,我们也将在这段精彩的开发旅程中继续前进。 Kotlin 2.0 的未来将由我们共同塑造。


有关如何启用 K2 编译器的更多信息,请参阅在项目中试用 K2 编译器。


如何安装 Kotlin 1.9.0


如果您已经在使用 IntelliJ IDEA 2022.3.3 或 2023.1.1,IDE 会自动建议将 Kotlin 更新到 1.9.0。 您也可以按照这些说明手动更新:


https://kotlinlang.org/docs/releases.html#update-to-a-new-release


IntelliJ IDEA 2023.2 将内置 Kotlin 1.9.0 插件。


对于 Android Studio Giraffe (223) 和 Hedgehog (231),Kotlin 1.9.0 插件将随即将推出的 Android Studio 更新一起提供。 如果需要命令行编译器,请从 GitHub 版本页面下载:


https://github.com/JetBrains/kotlin/releases/tag/v1.9.0


更多文章和视频


  • “Kotlin 1.9.0 最新变化”文档:

https://kotlinlang.org/docs/whatsnew19.html


  • Kotlin 1.9.0 最新变化 YouTube 视频

https://youtu.be/fvwTZc-dxsM


  • K2 编译器将在 Kotlin 2.0 中进入稳定状态

https://blog.jetbrains.com/zh-hans/kotlin/2023/02/k2-kotlin-2-0/


  • Kotlin EAP Champion

https://blog.jetbrains.com/kotlin/2022/11/eap-champions/


相关阅读:


浅谈 Kotlin 编程 01. 初识 Kotlin 和入门示例

从 HelloWorld 看 Java 与 Kotlin

Meta 将百万行代码从 Java 移植到 Kotlin

又一巨头从 Java 迁移到 Kotlin !

2023-08-03 14:372260

评论

发布
暂无评论
发现更多内容

软件测试 | 测试开发 | Web自动化之Selenium安装

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 测试面试真题|抖音的广告系统前后台,该如何测试?

测吧(北京)科技有限公司

测试

自有APP小程序如何打通微信登陆体系

Geek_99967b

小程序 小程序生态

公司内部分享文档应该怎么写?看这篇就够了

Baklib

软件测试 | 测试开发 | 测试环境搭建

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | web前端的HTML浅析

测吧(北京)科技有限公司

测试

阿里面试官内部题库,阿里发布2022年Java岗(正式版)面试题

程序知音

Java java面试 后端技术 秋招 Java面试八股文

八家知名大厂联合手写的Java面试手册刚上线!竟就到达巅峰?

钟奕礼

Java 架构 后端 java面试

从规模化平台工程实践,我们学到了什么?

SOFAStack

概述服务网格的优劣势

穿过生命散发芬芳

服务网格 9月月更

BATJ互联网月薪38K的Java岗面试题首曝光,掌握这些大厂Offer指定跑不了

程序知音

Java java面试 后端技术 秋招 Java面试八股文

数据治理的核心:维度建模下的数仓构建

小鲸数据

数据仓库 维度建模 维度 数仓分层 分层划域

软件测试 | 测试开发 | Web测试方法与技术实战演练

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 测试面经 | 从测试螺丝钉到大厂测试开发,三点成长心得和面试经验

测吧(北京)科技有限公司

测试

Java高手怎样炼成?阿里大牛一份火爆GitHub的1046页笔记帮你解决

钟奕礼

Java 程序员 架构 后端 java面试

iMazing高效便捷的数据转移功能

淋雨

ios iphone

小程序容器,组装式应用的一种方案

Geek_99967b

小程序

从融云社交泛娱乐出海白皮书,看「社交+X」的全球攻略

融云 RongCloud

即时通讯 白皮书 泛娱乐社交

2021 金三银四面试必备?体系化带你学习:分布式进阶技术手册

钟奕礼

Java 架构 后端 java面试

GitHub获百万推荐的面试涨薪秘籍(Java岗)惨遭封杀?

钟奕礼

Java 后端 java面试 后端架构

软件测试 | 测试开发 | Web测试方法与技术之JavaScript 讲解

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | Web测试方法与技术之CSS讲解

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | WEB 端常见 Bug 解析

测吧(北京)科技有限公司

测试

测试开发面试真题 | 测试老兵进阶突破,成功挑战大厂 P7 Offer!

测吧(北京)科技有限公司

测试

小程序怎样影响传媒产业的数字化

Geek_99967b

小程序

阿里被转载上100W次的Java面试题教程!已助我拿下9家大厂offer!

钟奕礼

Java 架构 后端 java面试

软件测试 | 测试开发 | Selenium 测试用例编写

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 一道大厂测试开发面试真题,你需要几分钟解答?

测吧(北京)科技有限公司

测试

22年程序员更卷了,金九银十“面试必备小册”最新开源

程序知音

Java 阿里 后端技术 秋招 Java面试题

面试凉凉,阿里学长甩我一份24w字Java核心技术面试手册,真香

钟奕礼

Java 架构 后端 java面试

iMazing怎么恢复备份?iMazing恢复备份教程分享

淋雨

ios iphone

Kotlin 1.9.0 发布:带来多项新的语言特性,改进Multiplatform/Native支持_架构/框架_平川_InfoQ精选文章