-1
誰でも可変マップのデフォルト値がどのように機能するのか説明できますか?mutable.MapのwithDefaultValueの振る舞い
scala> val mmap = mutable.Map[String, mutable.Set[String]]().withDefaultValue{mutable.Set[String]()}
mmap: scala.collection.mutable.Map[String,scala.collection.mutable.Set[String]] = Map()
scala> mmap("a") += "b"
res1: scala.collection.mutable.Set[String] = Set(b)
マップは空であり、キーはありません。
scala> mmap
res2: scala.collection.mutable.Map[String,scala.collection.mutable.Set[String]] = Map()
しかし、私が編集しようとしたキーはデータを表示しています。
scala> mmap("a")
res3: scala.collection.mutable.Set[String] = Set(b)
はなぜres2
空のマップですが、mmap("a")
は価値がありますか?
を作成するためには
デフォルト値を変更している現実に
をマップエントリを作成するのではなく、デフォルト値を変更したようです。 'mmap(" x ")== mmap(" y ")'が同じ(デフォルト値)のインスタンスを返すので、期待通りに動作しないと思います。 – Bergi
わかる。精巧な精神? –
mmap.assign( "a"、mmap( "a")+ "b")ではなく '(mmap(" a "))+ =(" b ")'として動作します。 – Bergi