在Scala Sink or Swim的评论中,Josh Sureth将非方法本地变量称为Scala代码中的问题原因。
该页面是该词组non-method-local vars
唯一的Google匹配,所以它意味着什么,问题是什么?
答案 0 :(得分:7)
方法局部变量是在方法范围内声明的局部变量。
因此,非方法局部变量应该是一个范围更广的变量,例如类范围。
无法确定为什么会说他们有问题。也许这仅仅是因为它们在对象中引入了一种可变状态。
答案 1 :(得分:3)
非方法本地变量的问题在于它们将可变状态引入类/对象。这是你应该尽可能避免的事情,因为scala也是一种功能语言。 (在像Haskell变量这样的纯函数式语言中是禁止的。)当你开始并行工作时,这些变量会开始产生更多的问题。