asynchronous - Kotlin:具有 Suspend Function 返回类型的高阶函数
问题描述
如何从常规函数返回挂起函数?如何创建挂起函数实例?
例如,我可以从函数返回异步结果:
fun <T> f(g: () -> T): Deferred<T> = GlobalScope.async { g() }
但我注意到 Kotlin 允许以下函数签名:
fun <T> f(g: () -> T): suspend () -> T {
TODO()
}
我该如何实施?
解决方案
@Rene 的回答更简短:
fun <T> f(g: () -> T) = suspend { g() }
推荐阅读
- c# - 将 typeof(x) 类型传递给泛型方法
- azure - 在 Flutter 中从 Azure Cosmos DB 获取数据?
- css - 如何创建背景图像的静态网格
- python-3.x - 我在 python3 中使用 seaborn 可视化数据集,但它给了我一个错误。/ 不支持的操作数类型:“str”和“int”
- java - 尝试在 azure 中创建新存储桶时出现 java.net.UnknownHostException
- featuretools - 功能工具时间序列数据按月年分组
- maven - 我可以从 nexus 部署到 ARM 吗?
- reactjs - 从反应组件内部的 iframe 访问 html 元素
- auth0 - Style Auth0 的小屏幕通用登录标题?
- api - bookmyshow 如何解密 Whatsapp api 以发送文本?