Идиоматический способ обновления значения в карте на основе предыдущего значения

Допустим, я храню информацию о банковских счетах на неизменяемой карте :

val m = Map("Mark" -> 100, "Jonathan" -> 350, "Bob" -> 65)

, и я хочу снять, скажем, 50 долларов со счета Марка. Я могу сделать это следующим образом:

val m2 = m + ("Mark" -> (m("Mark") - 50))

Но этот код мне кажется некрасивым. Есть ли лучший способ написать это?

43
задан ffriend 25 January 2012 в 13:57
поделиться