5

在对Scala Sink 或 Swim的评论中, Josh Sureth 指出非方法本地变量是 Scala 代码出现问题的原因。

该页面是该短语的唯一谷歌命中non-method-local vars,那么它是什么意思,有什么问题?

4

2 回答 2

7

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

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

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

于 2012-05-05T12:36:47.313 回答
3

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

于 2012-05-05T16:21:00.777 回答