scala 闭包之外的自由变量存在的一些问题

scala 闭包之外的自由变量存在的一些问题

##今天在看闭包的时候,书上说只要能找到名字为more的变量,f这个函数值(对象)就能正常工作。可是我在接下来的语句中定义了一个可变的more之后,f这个函数值还是只能读入之前的 val more这个自由变量。

#但是这里为什么没有读到最新的more,我还没有查到这是为什么

scala 闭包之外的自由变量存在的一些问题

#这里我重新定义val more为2,可是执行f函数值之后,里面的more看样子还是1没有变化。。。

 

scala 闭包之外的自由变量存在的一些问题

scala 闭包之外的自由变量存在的一些问题

我将more1定义为可变的之后就能正常改变more1的值,并得到想要的结果