パラメトリックフィールド(以下の例ではx
など)は通常のフィールドのように動作します。あなたが方法でそれらを参照することができます。Scalaのパラメトリックフィールドとコンストラクタ引数
class Test(val x: Int) { // x is a parametric field
override def toString = "Test: " + x;
}
をただし、あなたがキーワードval
をドロップする場合、コードはまだコンパイル(と見ていると.class
出力は、x
はまだクラスのメンバーです)。ですから、パラメトリックフィールド(上記のval x: Int
)とコンストラクタ引数(x: Int
)の違いは何ですか?
(私の頭の後ろでJavaを使用すると、私はないにx
のようなコンストラクタの範囲を期待しているだろうがtoString
のような方法が挙げられる。)
なりなり接頭辞が 'val'であるかどうかにかかわらず、少なくとも1つのメソッドで参照されていればメンバーになります。 – adelbertc