释放

Kotlin 1.5.30现在可用!

阅读这篇其他语言的文章:
法语Русский简体中文

由于Kotlin 1.5.30是Kotlin 1.6.0之前的最后一个增量版本,它包含了我们计划在Kotlin 1.6.0中发布的许多实验性语言和标准库特性。给他们一个尝试,并与我们分享你的反馈,你可以真正影响最终的结果!这些实验特性包括密封性语句、选择加入需求的更改、注释类的实例化、持续时间正则表达式stdlib api等。

有了Kotlin 1.5.30,你也可以享受苹果硅的原生支持,Kotlin/JS IR后端升级到Beta版,自定义使用的能力cinterop支持Kotlin Gradle插件提供的Java工具链,等等。

更新到Kotlin 1.5.30

这篇博客文章提供了这个版本的更新概述:

自动更新到Kotlin 1.5.30

如果你使用IntelliJ IDEAAndroid工作室,您可以选择在新的Kotlin发行版可用时自动更新到它。

了解更多关于安装芬兰湾的科特林1.5.30

注意:最新版本的IntelliJ IDEA - 2021.2不支持Kotlin 1.5.30。如果您已经升级,您可以使用JetBrains轻松安装IntelliJ IDEA 2021.1工具箱的应用并在该版本中使用Kotlin 1.5.30,或者你可以等待Kotlin 1.5.31的bug修复版本。

语言

芬兰湾的科特林路线图包括增加对密封的支持语句,发布可选的注释,改进类型推断,稳定构建器推断。

Kotlin 1.5.30在这条路上走了一步,它提供了这些特性的预览,计划在1.6.0中发布。

密封语句

密封这是一个期待已久的功能吗在YouTrack上有280票.如果你在1.5.30中启用该特性, Kotlin编译器将警告,如果您的声明不是详尽无遗的。这将使您的代码更安全,而无需引入自己的函数。

尝试一下这个功能,并提供你的反馈这YouTrack票

支持暂停函数作为工具

Kotlin 1.5.30提供了一个使用功能的预览暂停函数类型作为超级接口,尽管它有一些限制.这是Kotlin协程设计中缺失的部分之一。

启用这个特性,试一试,并提供你的反馈这YouTrack票

选择加入要求的更改

作为迈向可选注释的发布,芬兰湾的科特林1.5.30:

  • 礼物新规则用于在不同的目标上使用和声明选择性加入的需求注释。
  • 即使是实验性API的隐式用法也需要选择加入。例如,如果函数的返回类型被标记为实验性API元素,那么函数的使用要求您选择加入,即使声明没有被标记为要求显式地选择加入。

尝试这些改变,并分享你的反馈这YouTrack票

了解更多关于选择需求

改进递归泛型类型上的类型推断

递归泛型类型的类型推断启用时,如果类型是递归泛型,Kotlin 1.5.30编译器只能根据相应类型形参的上界推断类型实参。这使得使用递归泛型类型创建各种模式成为可能,这些模式通常在Java中用于创建构建器api。

消除构建器推理限制

消除构建器推理限制启用后,Kotlin 1.5.30删除了一个构建器推断限制。不仅可以指定构建器推断可以推断的类型信息,还可以使用得到函数。例如,你可以打电话get ()在的lambda参数中buildList ()没有显式指定类型参数。

芬兰湾的科特林多平台

Kotlin 1.5.30包含了以下Kotlin多平台的改进:

  • 使用自定义功能cinterop共享本地代码中的库,它扩展了共享Kotlin/Native附带的平台相关库的能力。
  • 支持XCFrameworks作为所有Kotlin多平台项目的输出格式。XCFrameworks帮助在一个bundle中收集所有目标平台和架构的逻辑,并且在将应用发布到AppStore之前不需要删除不必要的架构。
  • Android工件新的默认发布设置.这个设置将与任何构建类型兼容(比如调试释放默认情况下)。1.5.30之前,元数据生成的maven-publish在发布Android多平台库时,Gradle插件为每个发布的Android变体都包含了build type属性。这使得它只与库使用者使用的相同构建类型兼容。

芬兰湾的科特林/ JVM

使用Kotlin 1.5.30, Kotlin/JVM得到以下更新:

芬兰湾的科特林/本机

Kotlin 1.5.30为Kotlin/Native提供了以下改进:

芬兰湾的科特林/ JS

Kotlin 1.5.30为Kotlin/JS提供了以下改进:

Gradle

Kotlin 1.5.30引入了以下特性改进Kotlin Gradle插件的用户体验

  • 支持Java工具链.Gradle 6.7引入支持Java工具链,这使得选择用于项目编译的JDK变得很容易。只要在构建脚本中声明你需要的版本,Gradle就会完成剩下的工作,在你的主机上找到它,如果还没有,甚至可以下载并安装它。Kotlin Gradle插件支持Java工具链用于Kotlin/JVM编译任务。对于Gradle 6.1-6.6版本,使用UsesKotlinJavaToolchain接口
  • 显式指定Kotlin守护进程JVM参数的更简单方法.如果没有为Kotlin守护进程指定任何参数,那么它将从Gradle守护进程继承参数。现在,您还可以为特定的任务指定参数,也可以为Kotlin扩展指定参数build.gradle.ktsgradle.properties

build.gradle.kts

gradle.properties

标准库

Kotlin 1.5.30对标准库进行了改进持续时间正则表达式api:

持续时间API改进

表示在我们的图书馆的路线图我们会的在Kotlin 1.6.0中稳定Duration API,这意味着这是最后的机会,给它一个尝试,并与我们分享您的反馈,任何你想改变。我们将非常感谢你的反馈这让。

Kotlin 1.5.30提供了API改进的预览。的输出Duration.toString ()现在可读性更好了。例如,Duration.minutes (920) .toString ()生产15 h 20米而不是以前的920米

负数持续时间现在以减号作为前缀(-),如果它由多个组件组成,则用括号括起来:-12米- (1 h 30米)

这个版本还提供了一个预览用于从String解析Duration的新函数

  • parse ()从格式为Duration的字符串解析Duration对象toString ()或者从表示ISO 8601持续时间(如toIsoString ()输出)。
  • parseIsoString ()从表示ISO 8601持续时间的字符串解析持续时间对象。
  • * OrNull ()两个函数的对应项。

Regex API改进

Kotlin 1.5.30为正则表达式提供了新的实验函数:

  • matchesAt ()检查正则表达式在String的指定位置是否匹配。
  • matchAt ()如果找到,返回匹配。
  • splitToSequence ()是懒惰的对等物吗split ().它根据给定正则表达式的匹配来分割字符串,但是返回结果序列.也添加了一个类似的函数CharSequence进行

如何安装Kotlin 1.5.30

如果你已经使用IntelliJ IDEAAndroid工作室,您的IDE将建议自动将Kotlin更新到1.5.30。您也可以通过以下方式手动更新这些指令

您可以下载这些ide的最新版本,以获得对Kotlin的广泛支持:

确保你也更新了kotlinx库到兼容版本以及在现有项目的构建脚本中指定的Kotlin 1.5.30版本。

如果您需要命令行编译器,请从Github发布页面

如果你遇到任何问题

保持与最新的Kotlin功能的信息!请填写本文右侧的表格,订阅Kotlin更新。

多读多看

外部贡献者

我们想要感谢所有我们的外部贡献者,他们的拉请求包括在这个版本:

Jinseong全巴西天宇耿马克Punzalan尼蒸机伊凡Gavrilovic史蒂文·谢弗弗拉基米尔·伊万诺夫挂着阮马修Gharrity(陈伊凡KochurkinIaroslav PostovalovToshiaki KameyamaUdi科恩新王bracadabra