医院网站建设方案计划书,电商巨头,线下教育机构,优化大师怎么样一、概述
Kotlin 1.8.0版本英语官方文档
Kotlin 1.8.0 中文官方文档 The Kotlin 1.8.0 release is out and here are some of its biggest highlights: Kotlin 1.8.0发布了#xff0c;下面是它的一些亮点: JVM 平台新增实验性函数#xff1a;递归复制或删除目录内容改进了 …一、概述
Kotlin 1.8.0版本英语官方文档
Kotlin 1.8.0 中文官方文档 The Kotlin 1.8.0 release is out and here are some of its biggest highlights: Kotlin 1.8.0发布了下面是它的一些亮点: JVM 平台新增实验性函数递归复制或删除目录内容改进了 kotlin-reflect 性能新增 -Xdebug 编译器选项以提供更好的调试体验kotlin-stdlib-jdk7 与 kotlin-stdlib-jdk8 合并进了 kotlin-stdlib改进了 Objective-C/Swift 互操作性与 Gradle 7.3 的兼容性 主要演示的其中三个特性测试结果图如下 二、kotlin-stdlib-jdk7 与 kotlin-stdlib-jdk8 合并进了 kotlin-stdlib 标准库 Kotlin 1.8.0 稳定了一些函数——Java 与 Kotlin 之间的 TimeUnit 转换、 cbrt()、 Java Optional 扩展函数。 提供可比较且可减去的 TimeMark 预览版。 包含 java.nio.file.path 的实验性扩展函数。 附赠改进了 kotlin-reflect 性能。 2.1 cbrt()函数 cbrt()函数允许您计算双精度或浮点数的实数立方根它现在是稳定的。 fun testcbrt(){println(------ cbrt()函数计算双精度或浮点数的实数立方根 结果 ------)val num 27val negNum -numprintln(The cube root of ${num.toDouble()} is cbrt(num.toDouble()))println(The cube root of ${negNum.toDouble()} is cbrt(negNum.toDouble()))
}运行结果 2.2 Java 与 Kotlin 之间的 TimeUnit 转换 kotlin中的toTimeUnit()和toDurationUnit()函数。时间现在稳定了。这些功能在Kotlin 1.6.0中作为实验版本引入提高了Kotlin与Java之间的互操作性。 现在您可以轻松地在Java Java .util.concurrent. timeunit和Kotlin Kotlin .time. durationunit之间进行转换。这些函数仅在JVM上受支持。 // For use from Java
fun wait(timeout: Long, unit: TimeUnit) {val duration: Duration timeout.toDuration(unit.toDurationUnit())println(java timeout $timeout $unit 使用 kotlin 转换后 duration $duration)
}fun main(){testcbrt()println(------ Java 与 Kotlin 之间的 TimeUnit 转换 ------)wait(1, TimeUnit.HOURS)wait(1, TimeUnit.MINUTES)wait(60, TimeUnit.MINUTES)wait(3, TimeUnit.SECONDS)wait(60, TimeUnit.SECONDS)wait(1000, TimeUnit.MILLISECONDS)wait(1000, TimeUnit.MICROSECONDS)}运行结果 2.3 可比较可减去的 TimeMark 在Kotlin 1.8.0之前如果您想计算多个TimeMark与现在之间的时间差那么一次只能对一个TimeMark调用elapsedNow()。 这使得比较结果变得困难因为两个elapsedNow()函数调用不能完全同时执行。 为了解决这个问题在Kotlin 1.8.0中您可以从同一时间源中减去和比较timemark。 现在可以创建一个新的TimeMark实例来表示Now并从中减去其他TimeMark。这样从这些计算中收集的结果就可以保证彼此是相对的。 fun testTimeMark(){println(------ 可比较可减去的 TimeMark ------)val timeSource TimeSource.Monotonicvar mark1 timeSource.markNow()Thread.sleep(500)val mark2 timeSource.markNow()repeat(4) { n -val elapsed1 mark1.elapsedNow()val elapsed2 mark2.elapsedNow()// Difference between elapsed1 and elapsed2 can vary depending// on how much time passes between the two elapsedNow() callsprintln(Measurement 1.${n 1}: elapsed1$elapsed1, elapsed2$elapsed2, diff${elapsed1 - elapsed2})}println()// Since 1.8.0repeat(4) { n -val mark3 timeSource.markNow()val elapsed1 mark3 - mark1val elapsed2 mark3 - mark2// Now the elapsed times are calculated relative to mark3,// which is a fixed valueprintln(Measurement 2.${n 1}: elapsed1$elapsed1, elapsed2$elapsed2, diff${elapsed1 - elapsed2})}// Its also possible to compare time marks with each other// This is true, as mark2 was captured later than mark1println(mark2 mark1 : ${mark2 mark1})
}运行结果 三、kt_180.kt文件代码
package com.example.test.ktversionimport java.util.concurrent.TimeUnit
import kotlin.math.cbrt
import kotlin.time.Duration
import kotlin.time.TimeSource
import kotlin.time.toDuration
import kotlin.time.toDurationUnit/*https://book.kotlincn.net/text/whatsnew18.html标准库Kotlin 1.8.0稳定了一些函数——Java 与 Kotlin 之间的 TimeUnit 转换、 cbrt()、 Java Optional 扩展函数。提供可比较且可减去的 TimeMark 预览版。包含 java.nio.file.path 的实验性扩展函数。附赠改进了 kotlin-reflect 性能。*/
/*** cbrt()函数允许您计算双精度或浮点数的实数立方根它现在是稳定的。*/
fun testcbrt(){println(------ cbrt()函数计算双精度或浮点数的实数立方根 结果 ------)val num 27val negNum -numprintln(The cube root of ${num.toDouble()} is cbrt(num.toDouble()))println(The cube root of ${negNum.toDouble()} is cbrt(negNum.toDouble()))
}/*Java 与 Kotlin 之间的 TimeUnit 转换kotlin中的toTimeUnit()和toDurationUnit()函数。时间现在稳定了。这些功能在Kotlin 1.6.0中作为实验版本引入提高了Kotlin与Java之间的互操作性。现在您可以轻松地在Java Java .util.concurrent. timeunit和Kotlin Kotlin .time. durationunit之间进行转换。这些函数仅在JVM上受支持。*/
// For use from Java
fun wait(timeout: Long, unit: TimeUnit) {val duration: Duration timeout.toDuration(unit.toDurationUnit())println(java timeout $timeout $unit 使用 kotlin 转换后 duration $duration)
}/*可比较可减去的 TimeMark在Kotlin 1.8.0之前如果您想计算多个TimeMark与现在之间的时间差那么一次只能对一个TimeMark调用elapsedNow()。这使得比较结果变得困难因为两个elapsedNow()函数调用不能完全同时执行。为了解决这个问题在Kotlin 1.8.0中您可以从同一时间源中减去和比较timemark。现在可以创建一个新的TimeMark实例来表示Now并从中减去其他TimeMark。这样从这些计算中收集的结果就可以保证彼此是相对的。*/
fun testTimeMark(){println(------ 可比较可减去的 TimeMark ------)val timeSource TimeSource.Monotonicvar mark1 timeSource.markNow()Thread.sleep(500)val mark2 timeSource.markNow()repeat(4) { n -val elapsed1 mark1.elapsedNow()val elapsed2 mark2.elapsedNow()// Difference between elapsed1 and elapsed2 can vary depending// on how much time passes between the two elapsedNow() callsprintln(Measurement 1.${n 1}: elapsed1$elapsed1, elapsed2$elapsed2, diff${elapsed1 - elapsed2})}println()// Since 1.8.0repeat(4) { n -val mark3 timeSource.markNow()val elapsed1 mark3 - mark1val elapsed2 mark3 - mark2// Now the elapsed times are calculated relative to mark3,// which is a fixed valueprintln(Measurement 2.${n 1}: elapsed1$elapsed1, elapsed2$elapsed2, diff${elapsed1 - elapsed2})}// Its also possible to compare time marks with each other// This is true, as mark2 was captured later than mark1println(mark2 mark1 : ${mark2 mark1})
}fun main(){testcbrt()println(------ Java 与 Kotlin 之间的 TimeUnit 转换 ------)wait(1, TimeUnit.HOURS)wait(1, TimeUnit.MINUTES)wait(60, TimeUnit.MINUTES)wait(3, TimeUnit.SECONDS)wait(60, TimeUnit.SECONDS)wait(1000, TimeUnit.MILLISECONDS)wait(1000, TimeUnit.MICROSECONDS)testTimeMark()
}