Scalaでは、クラスの主コンストラクタに明示的なボディはありませんが、クラス本体から暗黙的に定義されています。どのようにしてフィールドとローカル値(つまりコンストラクタメソッドのローカルな値)を区別するのですか?Scalaのプライマリコンストラクタでローカルvar/valをどのように定義しますか?
はたとえば、次のコードスニペット、「スカラ座でのプログラミング」からいくつかのサンプルコードの修正形を取る:
class R(n: Int, d: Int) {
private val g = myfunc
val x = n/g
val y = d/g
}
私の理解では、これは三つのフィールドを持つクラスを生成することである。プライベート」 g "、公開者" x "、" y "を含む。ただし、g値はxフィールドとyフィールドの計算にのみ使用され、コンストラクタスコープを超えては意味を持ちません。
この(おそらく人工的な)例では、このコンストラクタのローカル値をどのように定義しますか?
他の人が私と同様の質問をしていて、私のように最初にここに来た場合のための投稿。 _constructors_と同じコンセプトを実行しようとしている場合は、私の質問に答えを使用してください:https://stackoverflow.com/questions/46455835/how-to-define-val-inside-class-constructor-in-scala –