私はその後、ScalaのリストとvalのユーティリティとVAR
val a = 1
を書いていた場合には、再び私に
a : Int = 1
を与えます私はスカラのval宣言された変数に値を代入することはできません。
変数としてvalを宣言して長さ3のScala Listを割り当てた場合、長さを変更することはできませんが、そのScala配列内の個々の要素の値を変更することができます。この場合でも変数はまだ不変ですが、配列は内部的に変更可能であるため、意味があります。
私は
val OneTwo = List(1,2)
のようなScalaのリストは、彼が出力を続くINTなります宣言した場合、今の質問はScalaのリストに記載されている:
oneTwo: List[Int] = List(1,2)
[OK]を、今、このしよう:
val OneTwo = List("One","Two")
を
は、次の出力結果を出力します。
oneTwo: List[String] = List("One","Two")
リスト変数、つまりoneTwoが変更可能で、新しい種類のオブジェクトにそれを再割り当てできる理由はわかりません。なぜオブジェクトが不変になるJava Stringのように振る舞いますが、それが割り当てられている変数を新しいStringオブジェクトに割り当てることができます。それがそうならば、ここでそれをvalと宣言する効用は何ですか?
のために働くだろう?? – prayagupd
oneTwo = List( "One"、 "Two")をvalの前に付けずに試してみてください。あなたはvalエラーに同じ再割り当てを取得します。 –
2番目のステートメントで新しいvalを作成するだけです。既存のvalに新しい値を代入するのではなく、oneTwoという名前の新しいvalを作成しています。 – ramzavil