首页 > 解决方案 > Kotlin:具有 Suspend Function 返回类型的高阶函数

问题描述

如何从常规函数返回挂起函数?如何创建挂起函数实例?

例如,我可以从函数返回异步结果:

fun <T> f(g: () -> T): Deferred<T> = GlobalScope.async { g() }

但我注意到 Kotlin 允许以下函数签名:

fun <T> f(g: () -> T): suspend () -> T {
    TODO()
}

我该如何实施?

标签: asynchronouskotlincoroutinekotlin-coroutinessuspend

解决方案


@Rene 的回答更简短:

fun <T> f(g: () -> T) = suspend { g() }

推荐阅读