Я смотрю на launch
конструктор сопрограмм, который принимает код сопрограммы как block: suspend CoroutineScope.() -> Unit
. Обычно мы передаем код как лямбда. Однако мне было интересно, как передать эту функцию в качестве явного параметра для запуска функции.
coroutineScope {
launch(block = ::myFunction)
}
suspend fun CoroutineScope.myFunction(): Unit {
// coroutine code
}
Это дает следующую ошибку
Type mismatch.
Required:
suspend CoroutineScope.() → Unit
Found:
KSuspendFunction0<Unit>
Что я пропускаю?