本地函数更新两个变量的封闭方法

时间:2011-06-23 17:12:28

标签: function scala code-generation var

从公交车上张贴,所以我会保持简短。

如果本地函数需要访问和更新封闭方法的局部变量,则编译器必须将后者转换为对象,因此可以传递它。

如果更新两个本地变量怎么办?这些被翻译成2个对象吗?或者1个具有2个字段的对象。我想第一个,实现起来比较简单,但我会更自信第二种方法,实质上是一种优化,实现。

由于

1 个答案:

答案 0 :(得分:2)

现在(2.9),确实,Scala编译器使用了两个单独的“holder”对象来捕获闭包中的两个变量。