标签: function scala code-generation var
从公交车上张贴,所以我会保持简短。
如果本地函数需要访问和更新封闭方法的局部变量,则编译器必须将后者转换为对象,因此可以传递它。
如果更新两个本地变量怎么办?这些被翻译成2个对象吗?或者1个具有2个字段的对象。我想第一个,实现起来比较简单,但我会更自信第二种方法,实质上是一种优化,实现。
由于
答案 0 :(得分:2)
现在(2.9),确实,Scala编译器使用了两个单独的“holder”对象来捕获闭包中的两个变量。