В Java есть метод в java.util.Map, называемый compute, который предоставляет способ обновить карту, когда ключ присутствует или отсутствует на карте.
compute
Предоставляет ли scala.collection.mutable.Map аналогичную функцию?
Я проверил документацию Карта и HashMap , но не смог найти эквивалентные.
В mutable.MapLike определена черта getOrElseUpdate, которая делает именно то, что вы хотите:
mutable.MapLike
getOrElseUpdate
def getOrElseUpdate(key: K, op: ⇒ V): V
Если данный ключ уже находится на этой карте, возвращает соответствующее значение. В противном случае вычисляет значение из данного выражения op, сохраняет с ключом в карте и возвращает это значение.
вы можете использовать update и getOrElse как в
update
getOrElse
val x= scala.collection.mutable.Map("a"->1,"b"->2) x.update("c",x.getOrElse("c",1)+41) x.update("a",x.getOrElse("a",1)+41)