私は可変コレクションがどのように機能するのか理解できないかもしれないと思います。しかし私は、変更可能なコレクションは、それらにマップを適用するか、新しい要素を追加することによって影響を受けることが期待される:Scalaで可変コレクションを使用する方法
scala> val s: collection.mutable.Seq[Int] = collection.mutable.Seq(1)
s: scala.collection.mutable.Seq[Int] = ArrayBuffer(1)
scala> s :+ 2 //appended an element
res32: scala.collection.mutable.Seq[Int] = ArrayBuffer(1, 2)
scala> s //the original collection is unchanged
res33: scala.collection.mutable.Seq[Int] = ArrayBuffer(1)
scala> s.map(_.toString) //mapped a function to it
res34: scala.collection.mutable.Seq[java.lang.String] = ArrayBuffer(1)
scala> s //original is unchanged
res35: scala.collection.mutable.Seq[Int] = ArrayBuffer(1)
//maybe mapping a function that changes the type of the collection shouldn't work
//try Int => Int
scala> s.map(_ + 1)
res36: scala.collection.mutable.Seq[Int] = ArrayBuffer(2)
scala> s //original unchanged
res37: scala.collection.mutable.Seq[Int] = ArrayBuffer(1)
この動作は不変コレクションとは別ではないようですので、それらを個別に動作しないとき?
問題は、両方のメソッドが新しいコレクションをマップして返しますが、コレクションはその場所でコレクションを変更しないという点です。 –