gpt4 book ai didi

kotlin - 对协程范围构造函数语法感到困惑

转载 作者:行者123 更新时间:2023-12-02 12:16:14 27 4
gpt4 key购买 nike

我不明白协程构造函数的语法。

private val uiScope = CoroutineScope(Dispatchers.Main + viewModelJob)

我知道参数需要协程上下文类。我不明白的是我们如何添加 2 个不同的对象?Dispatchers.Main类是MainCoroutineDispatcherviewModelJob 类是 Job。有什么解释吗?

最佳答案

CoroutineScope 不是构造函数而是函数,定义为:

public fun CoroutineScope(context: CoroutineContext): CoroutineScope = ...

参数是接口(interface)CoroutineContext,它本身定义了一个加号运算符:

public operator fun plus(context: CoroutineContext): CoroutineContext = ...

plus 运算符返回另一个 CoroutineContextDispatchers.MainJob 实现接口(interface) CoroutineContext

也就是说,Dispatchers.Main + viewModelJobplus的调用,构造了另一个CoroutineContext。内部这导致两个实例的集合。

关于kotlin - 对协程范围构造函数语法感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57005590/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com