地図の中にキーが存在するかどうか確認したいと思いますが、存在する場合は値を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が望んだものです。しかし、マップ全体が新しいマップにコピーされなければならないので、非常に非効率的です。変更可能なデータ構造は理由のためにスカラーになっていますが、これは良いユースケースになるかもしれません。 – Akavall