作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用像 getTimeMillis() 这样的系统函数,它应该是 kotlin.system 的一部分:https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.system/index.html
但是编译器说不能导入这样的模块。 gradle配置是这样的(kotlin多平台项目):
commonMain.dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-common:1.3.10"
implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime:0.10.0"
implementation "io.ktor:ktor-client:1.0.0"
implementation "io.ktor:ktor-client-logging:1.1.0"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core-common:1.1.0"
}
我也找不到任何使用示例或此模块。
最佳答案
getTimeMillis()
仅适用于 JVM
和 Native
不适用于 Common
和 JS
。
如果您只是在 Native 模块的源目录中调用 getTimeMillis()
,编译器就可以找到该函数。
如果您需要在 Common
中调用,您必须自己实现一个 Common
包装器函数,并自己在每个平台上实现该包装器。
为了做到这一点,创建一个 stub 函数和一个在您的公共(public)模块中使用它的函数。例如:
expect fun getSystemTimeInMillis(): Long
fun printSystemTimeMillis() {
println("System time in millis: ${getSystemTimeInMillis()}")
}
然后在您的平台特定模块中实现该功能。例如在一个 JVM 模块中:
actual fun getSystemTimeInMillis() = System.currentTimeMillis()
或者在像这样的原生模块中:
actual fun getSystemTimeInMillis() = getTimeMillis()
另请参阅:https://github.com/eggeral/kotlin-native-system-package
关于android - 如何在 Kotlin Native 中使用 kotlin.system?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55455127/
我是一名优秀的程序员,十分优秀!