コメントへScala Sink or Swim Josh Surethは、スカラコードの問題の原因として非メソッドローカル変数を呼び出します。Scalaのメソッドローカルではないvarとは何ですか?
このページは、フレーズnon-method-local vars
でGoogleヒットした唯一のページなので、どういう意味ですか、何が問題なのですか?
コメントへScala Sink or Swim Josh Surethは、スカラコードの問題の原因として非メソッドローカル変数を呼び出します。Scalaのメソッドローカルではないvarとは何ですか?
このページは、フレーズnon-method-local vars
でGoogleヒットした唯一のページなので、どういう意味ですか、何が問題なのですか?
メソッドローカル変数は、メソッドのスコープ内で宣言されたローカル変数です。
したがって、非メソッドローカル変数は、クラススコープなどのより広いスコープを持つ変数である必要があります。
なぜ問題があると思われるのかを確かめることはできません。おそらく、オブジェクト内に可変状態を導入するという事実によるものでしょう。
非メソッドローカル変数の問題は、それらがクラス/オブジェクトに可変状態を導入することです。スカラーは機能的な言語でもありますので、あなたができることは避けてください。 (Haskell変数のような純粋な関数型言語では禁止されています。)これらの変数は、parrallelの作業を開始するとさらに多くの問題を作り出します。
私はaioobeの答えを受け入れましたが、あなたの問題に同意します! –
はい彼の定義は良いです。 –
変数のスコープが小さければ小さいほど、それを混乱させる可能性は低くなります。 – ziggystar
メソッドローカル変数は、メソッドの外部から参照することで、メソッドの外側に問題が発生することはありません。 –
非メソッドローカル変数はフィールドです。または、他のタイプの変数は、メソッドローカルではありませんか? –