Kotlin 1.5.30 首个 RC 版本发布

Kotlin 1.5.30 发布了首个 RC 版本。RC 意味着所有特性已确定,在正式发布前的主要工作是修复 bug。

主要新特性包括:

  • 对 Opt-in 要求的更新
  • Kotlin/JS IR 后端进入 Beta 阶段
  • Gradle 插件对 Java 工具链的支持
  • 标准库中对 Regex 和 Duration 的改进

Kotlin/JS IR 后端进入 Beta 阶段

自 Kotlin 1.4 发布以来,Kotlin/JS 编译器的 IR 后端一直处于 Alpha 状态。现在终于进入了 Beta 阶段,这意味着后续不会出现破坏性变化,未来工作主要集中在提升稳定性上。

文档:https://kotlinlang.org/docs/js-ir-compiler.html

Gradle:构建脚本中 Kotlin 守护进程增加 JVM 选项以及 Java 工具链支持

Gradle 6.7 引入了对 Java 工具链的支持——可用于为项目编译选择 JDK。开发者只需在构建脚本中声明所需的版本,Gradle 会自动完成剩下的工作。Kotlin 1.5.30-RC 针对 Kotlin 编译任务启用了 Java 工具链支持:

kotlin {
    jvmToolchain {
        (this as JavaToolchainSpec).languageVersion.set(JavaLanguageVersion.of(<MAJOR_JDK_VERSION>)
    }
}

其他与 Gradle 相关的改进包括为 Kotlin Gradle 守护进程提供 JVM 选项的新方法。开发者可以在gradle.properties的单独代码行进行指定:

kotlin.daemon.jvmargs = "-Xmx486m -Xms256m -XX:+UseG1GC"

或在build.gradle.kts中进行指定:

kotlin {
   kotlinDaemonJvmArgs = listOf("-Xmx486m", "-Xms256m", "-XX:+UseG1GC")
}

改进 Regex 和 Duration API

Kotlin 的 Regex API 新增实验性功能。

  • matchesAt()用于检查正则表达式是否在字符串的指定位置匹配。如果找到匹配项,会返回匹配项本身。
val releaseText = "Kotlin 1.5.30 is coming!"
// regular expression: one digit, dot, one digit, dot, one or more digits
val versionRegex = "//d[.]//d[.]//d+".toRegex()
println(versionRegex.matchesAt(releaseText, 7)) // "true"
println(versionRegex.matchAt(releaseText, 7)?.value) // "1.5.30"
  • splitToSequence()split()相对应——围绕给定正则表达式的匹配项拆分字符串,但会将返回的结果作为Sequence。类似的功能也已被添加到CharSequence
val phoneNumber = "+7 (123) 456-78-90"
val regex = "[ ()-]+".toRegex()
val parts = phoneNumber.splitToSequence(regex)
// or
// val parts = regex.splitToSequence(phoneNumber)

// any processing operation on parts are executed lazily

更多内容查看 发布公告

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/94497.html

(0)
上一篇 2021年8月17日 02:31
下一篇 2021年8月17日

相关推荐

发表回复

登录后才能评论