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