我想檢查一個密鑰是否存在一個地圖,如果存在,我想增加1的價值。如果不存在,我想在地圖上添加一個新值,其值等於1.功能的方式來更新地圖
什麼是「功能性方法」?我用find和fold寫過,但看起來有點奇怪。
val updatedScore = currentScores
.find(s => s._1.equals(score))
.fold(score -> 1)(s => s._1 -> (s._2 + 1))
val newScores = currentScores + updatedScore
任何人都有更好的解決方案做同樣的事情嗎?
「功能性」通常意味着「避免副作用」等等。 'update'是一個副作用。 –
我不明白這是爲什麼這是副作用?我的意思是,這整個問題是關於更新可變映射,不是嗎? – user7938511
這是一個有效的答案。接受的答案是OP想要的;然而,這是非常低效的,因爲整個Map必須複製到新的Map。可變數據結構的原因在於scala,這對他們來說可能是一個很好的用例。 – Akavall