在Kotlin中实际关键字的用途是什么
我注意到一些协同程序的函数用在Kotlin中实际关键字的用途是什么,kotlin,Kotlin,我注意到一些协同程序的函数用actual关键字标记 发件人: 实际表示多平台形式的特定于平台的实现 计划 据我从actual中了解,关键字用于多平台项目,应该与expect关键字成对使用 大概是这样的: 通用模块: package org.jetbrains.foo expect class Foo(bar: String) { fun frob() } fun main(args: Array<String>) { Foo("Hello").frob() }
actual
关键字标记
发件人:
实际表示多平台形式的特定于平台的实现
计划
据我从actual
中了解,关键字用于多平台项目,应该与expect
关键字成对使用
大概是这样的:
通用模块:
package org.jetbrains.foo
expect class Foo(bar: String) {
fun frob()
}
fun main(args: Array<String>) {
Foo("Hello").frob()
}
这种情况很明显
但是在包kotlinx.coroutines.experimental
中,我注意到一些函数,如launch
或withContext
被标记为actual
,但包中没有expect
函数
那么,如果不使用
expect
,那么actual
关键字的目的是什么呢?kotlinx.coroutines库实际上使用了多平台项目,因为它同时支持JVM和JS编译目标
您可以找到您提到的函数的通用模块和特定的
expect
声明。很好,因此这只适用于expect/actual对。非常感谢。我在这个链接中找到了有关多平台实现中使用的expect
和actual
的更多信息:我无法在第二个链接中找到expect
声明。actual
表示多平台项目中特定于平台的实现-
package org.jetbrains.foo
actual class Foo actual constructor(val bar: String) {
actual fun frob() {
println("Frobbing the $bar")
}
}