首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kotlin CoroutineScope.lambda表示法

Kotlin CoroutineScope.lambda表示法
EN

Stack Overflow用户
提问于 2021-08-04 23:42:22
回答 1查看 96关注 0票数 1

最近,我发现了以下代码:

代码语言:javascript
复制
runWithObject(block: suspend CoroutineScope.(myObject: MyClass) -> Unit) {
   ...
   myObject?.let { runBlocking(myDispatcher) { block(it) } }
   ...
}

谁能给我解释一下参数类型CoroutineScope.(myObject: MyClass) ->单元是什么意思(如果可能的话,还有一些文档)?由于我不确定这是什么,我甚至不知道如何询问Google XD

如果myObject为非空,则该参数似乎是应该运行的代码块。但是CoroutineScope.是用来干什么的呢?这是否意味着该函数只能在协程中运行?

EN

回答 1

Stack Overflow用户

发布于 2021-08-05 00:05:31

这是一个函数接收器,here解释道。在传递给这个高阶函数的lambda中,this是接收器。

在本例中,这意味着在lambda中,您可以自由调用作为CoroutineScope成员的函数(如launchasynccancelcoroutineContext属性),而无需指定作用域。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68659070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档