質問
私はScalaでマップを操作しており、通常の"キーに関連付けられた値がない場合、キーを作成し、マップに入れてそれを返します"を実行しています:
def alphaMemory(key : AlphaMemoryKey) = {
var am = map.getOrElse(key, null)
if(am == null) {
am = new AlphaMemory(key)
map.put(key, am)
}
am
}
私にとって、これは慣用的なScalaコードのようには感じません。 Javaのように感じます。これをより簡潔に書く方法はありますか? Map.default()をオーバーライドして新しい値を挿入して返すことができるようです。わからない。
ありがとう!
解決
mutable.Map
には getOrElseUpdate
これは希望どおりに機能し、イディオムは不要です。
所属していません StackOverflow