有个问题
来源:11-7 案例:Generator 与标准库的序列生成器

慕运维1283185
2020-06-18
val nums = generator { start: Int ->
for (i in 0…5) {
yield(start + i)
}
}
视频中说yeild只希望在{}里边调用,所以也给它加一个receiver GeneratorScope, 我也知道for循环中可以this.yeild(start + i)这样调用,这个this就是GeneratorScope, 这个this做为receiver是从哪传进来的?
写回答
2回答
-
bennyhuo
2020-06-18
我把代码里面按顺序列了一下,同学参考一下。
022020-06-18 -
bennyhuo
2020-06-18
for 循环不会影响this呀,不用传,for所在的位置的this是谁,里面的this就是谁。
这里说的作用域的限制,是说yield只能在GeneratorScope的函数或者扩展函数中调用。for不是函数,跟这个点没有影响。
072020-10-04
相似问题