Kotlin:具有Suspend Function返回类型的高阶函数

时间:2020-03-12 06:54:24

标签: asynchronous kotlin coroutine kotlin-coroutines suspend

如何从常规函数返回暂停函数?如何创建暂停函数实例?

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

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

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

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

我该如何实施?

2 个答案:

答案 0 :(得分:2)

一种方法:

snippets

答案 1 :(得分:2)

@Rene的答案,但简短一些:

public class Address {
private String lines;

public Address(String lines)
{
    this.lines = lines;
    String[] arrOfStr = this.lines.split("|");
}