我正在研究将协程代码作为launch
的block: suspend CoroutineScope.() -> Unit
协程生成器。我们通常将代码作为lambda传递。但是,我想知道如何将此函数作为显式参数传递给启动函数。
coroutineScope {
launch(block = ::myFunction)
}
suspend fun CoroutineScope.myFunction(): Unit {
// coroutine code
}
它给出以下错误
Type mismatch.
Required:
suspend CoroutineScope.() → Unit
Found:
KSuspendFunction0<Unit>
我想念的是什么?
最佳答案
扩展函数引用的语法与成员函数的语法相同:
launch(block = CoroutineScope::myFunction)