Из документации ++
неизменяемый. Карта. ++ :
Adds a number of elements provided by a traversable object and returns a new collection with the added elements.
Таким образом, он действительно создает новую коллекцию, оставляя старую map
неизмененной:
scala> var map = Map("abc" -> 1, "xyz" -> 2)
map: scala.collection.immutable.Map[String,Int] = Map(abc -> 1, xyz -> 2)
scala> var change = map ++ Map("change of object" -> 3)
change: scala.collection.immutable.Map[String,Int] = Map(abc -> 1, xyz -> 2, change of object -> 3)
scala> change
res9: scala.collection.immutable.Map[String,Int] = Map(abc -> 1, xyz -> 2, change of object -> 3)
scala> map
res10: scala.collection.immutable.Map[String,Int] = Map(abc -> 1, xyz -> 2)
Вы можете использовать +=
для «изменения» вашего map
аналогично:
scala> map += "lol" -> 3
scala> map
res12: scala.collection.immutable.Map[String,Int] = Map(abc -> 1, xyz -> 2, lol -> 3)
Поймите, что я просто поставил «изменить», потому что это возвращает другой map
(так как он неизменный) объект и назначает его вашей map
переменной.