リスト内の各文字列の頻度をカウントし、結果を可変マップに格納する次のコードについて考えてみます。これはうまく機能しますが、+ =メソッドがどこで定義されているのかわかりませんか?!これは奇妙な暗黙の変換のことですか、それとも何ですか?このコードはどこかで見ましたが、+=の説明が含まれていませんでした。
val list = List("a", "b", "a")
val counts = new scala.collection.mutable.HashMap[String, Int]().withDefaultValue(0)
list.foreach(counts(_) += 1)
counts
//> res7: scala.collection.mutable.Map[String,Int] = Map(a -> 2, b -> 1)
mapを適用するとIntが返されますが、Intには+ =がなく、このメソッドはマップを新しい値で更新するため、applyが+=メソッドを持つ可変整数を返すように見えます...