首先我们知道completion是AbstractCoroutine的子类,所以它是一个CoroutineScope。
而如果在协程体中继续调用其他的suspend函数,比如叫A函数,则A函数参数传递进来的continuation是协程本体SuspendLambda,并不是completion,所以它并不是一个CoroutineScope。
老师也说,通过coroutineScope函数可以在suspend函数中获取到当前的协程作用域,我看了下,这个函数只是对传递进来的SuspendLambda进行了包装,创建了一个新的AbstractCoroutine子类对象ScopeCoroutine作为它的CoroutineScope。
问题在于,协程的CoroutineScope实际上是completion,supend函数中的CoroutineScope是ScopeCoroutine,它们两个之间没有任何关系吧?为什么说coroutineScope函数可以获取到当前的协程作用域呢?