1

valのみを使用してScalaでそれを行うことは可能ですか:

class MyClass {
  private val myVal1: MyClass2 //.....????? what should be here?

  def myMethod1(param1: Int) = {
    myVal1 = new MyClass2(param1)
    //....
    // some code....
  }
}

myVal1コンストラクタの引数がまだ不明なため、すぐに初期化することはできませんmyMethod1myVal1クラス内で見える必要があり、不変でなければなりません。

変更可能な状態は許可されていません。

それで、それは可能ですか?

4

3 に答える 3

4

いいえ、思い通りにはできません。考えてみてください、次の結果はどうなるでしょうか

val mc = new MyClass
mc.method1(0)
mc.method1(1)

? myVal12回設定すると例外がスローされますか? それとも、最初の値を保持する必要がありますか?

于 2013-06-18T06:16:34.577 に答える