Kotlin 1.9 带来新语言特性并改进多平台/原生支持

Kotlin 1.9.0 发布总结

Kotlin 1.9.0 引入了多项新语言特性,并对 Kotlin Multiplatform 和 Kotlin/Native 进行了改进。以下是主要更新内容:

语言特性

  1. 枚举类的 entries 属性

    • entries 属性已稳定,用于返回枚举类中所有枚举常量的列表。
    • 替代了 values() 方法,性能更优,因为它使用了预分配的列表,而不是每次分配新数组。
  2. 新运算符 ..<

    • 用于表示开区间范围,明确表示上界不包含在内。
  3. 扩展的正则表达式功能

    • 新增 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) // Austin
      println(match.groups["state"]?.value) // TX
      println(match.groups["areaCode"]?.value) // 512

Kotlin/Native 改进

  1. 自定义内存分配器预览

    • 通过 -Xallocator=custom 编译器选项启用,将系统内存划分为页面,以提高 Kotlin/Native 内存管理器的运行时性能。
  2. Objective-C/Swift 互操作性改进

    • 新的 Objective-C/Swift 对象释放策略,在适当情况下在主线程释放对象,减少内存泄漏的可能性。
  3. 其他改进

    • 支持为 iOS 模拟器测试配置独立模式。
    • 统一处理 Kotlin JVM 和 Kotlin/Native 中的链接问题,构建时不会因链接问题失败。

Kotlin Multiplatform 改进

  1. Gradle 配置缓存预览

    • 提供 Gradle 配置缓存功能的预览,优化构建性能。
  2. Android 目标支持变更

    • 为新的 Google 开发的 Gradle 插件铺平道路。

K2 编译器

  • Kotlin 1.9 包含 K2 编译器的 JVM 测试版,旨在提供更好的性能、加速语言特性开发,并为多平台对象提供更好的架构支持。
  • K2 编译器将在 Kotlin 2.0 中成为默认稳定编译器。

总结

Kotlin 1.9.0 通过引入新语言特性、改进 Kotlin/Native 和 Kotlin Multiplatform,以及为 K2 编译器奠定基础,进一步提升了开发体验和性能。更多详细信息可参阅官方发布说明

阅读 24
0 条评论