5

ScalaSinkまたは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 に答える