什么是Scala中的非方法局部变量?

时间:2012-05-05 12:33:43

标签: scala

Scala Sink or Swim的评论中,Josh Sureth将非方法本地变量称为Scala代码中的问题原因。

该页面是该词组non-method-local vars唯一的Google匹配,所以它意味着什么,问题是什么?

2 个答案:

答案 0 :(得分:7)

方法局部变量是在方法范围内声明的局部变量。

因此,非方法局部变量应该是一个范围更广的变量,例如类范围。

无法确定为什么会说他们有问题。也许这仅仅是因为它们在对象中引入了一种可变状态。

答案 1 :(得分:3)

非方法本地变量的问题在于它们将可变状态引入类/对象。这是你应该尽可能避免的事情,因为scala也是一种功能语言。 (在像Haskell变量这样的纯函数式语言中是禁止的。)当你开始并行工作时,这些变量会开始产生更多的问题。