Kotlin 对协同路由作用域构造函数语法感到困惑
我不理解协程构造函数的语法Kotlin 对协同路由作用域构造函数语法感到困惑,kotlin,Kotlin,我不理解协程构造函数的语法 private val uiScope = CoroutineScope(Dispatchers.Main + viewModelJob) 我知道参数需要Coroutine上下文类。 我不明白的是我们怎样才能添加两个不同的对象? 调度员。主类是MainCoroutineDispatcher viewModelJob类是Job。 有什么解释吗?CoroutineScope不是一个构造函数,而是一个函数,定义如下: public fun CoroutineScope(c
private val uiScope = CoroutineScope(Dispatchers.Main + viewModelJob)
我知道参数需要Coroutine上下文类。
我不明白的是我们怎样才能添加两个不同的对象?
调度员。主类是MainCoroutineDispatcher
viewModelJob类是Job。
有什么解释吗?
CoroutineScope
不是一个构造函数,而是一个函数,定义如下:
public fun CoroutineScope(context: CoroutineContext): CoroutineScope = ...
该参数是接口CoroutineContext
,它本身定义了一个加号运算符:
public operator fun plus(context: CoroutineContext): CoroutineContext = ...
plus
操作符返回另一个CoroutineContext
<代码>调度员。主和作业
实现接口CoroutineContext
也就是说,Dispatchers.Main+viewModelJob
是对plus
的调用,它构造了另一个CoroutineContext
。这将导致两个实例的集合