24
我在斯卡拉地圖工作和做通常的「如果沒有與鍵關聯的值,創建它,把它放在地圖上並返回」:成語斯卡拉地圖UPSERT
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()插入新值並返回它。但不知道。
謝謝!
非常好!我沒有意識到默認參數是「by-name」,所以我確信自己每次調用它都會被評估。謝謝! – 2009-01-03 04:51:42