首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Kotlin Native中使用kotlin.system?

如何在Kotlin Native中使用kotlin.system?
EN

Stack Overflow用户
提问于 2019-04-01 20:27:31
回答 1查看 1.8K关注 0票数 2

我想使用像getTimeMillis()这样的系统函数,它应该是kotlin.system的一部分:https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.system/index.html

但是编译器说这样的模块不能导入。gradle配置如下(kotlin多平台项目):

代码语言:javascript
复制
    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"
    }

此外,我找不到任何用法或此模块的示例。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-07 21:33:48

getTimeMillis()仅适用于JVMNative,不适用于CommonJS

如果您只在Native模块的源目录中调用getTimeMillis(),编译器就可以找到该函数。

如果需要在Common中调用,则必须自己实现一个Common包装器函数,并在每个平台上自己实现包装器。

为此,创建一个stub函数和一个在您的公共模块中使用它的函数。例如:

代码语言:javascript
复制
expect fun getSystemTimeInMillis(): Long

fun printSystemTimeMillis() {
    println("System time in millis: ${getSystemTimeInMillis()}")
}

然后实现你的平台特定模块的函数。例如,在JVM模块中:

代码语言:javascript
复制
actual fun getSystemTimeInMillis() = System.currentTimeMillis()

或者在本机模块中,如:

代码语言:javascript
复制
actual fun getSystemTimeInMillis() = getTimeMillis()

另请参阅:https://github.com/eggeral/kotlin-native-system-package

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55455127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档