문제
나는 Scala에서지도로 작업하고 있으며 일반적인 "키와 관련된 가치가 없다면, 그것을 만들고,지도에 넣고 반환하십시오":
def alphaMemory(key : AlphaMemoryKey) = {
var am = map.getOrElse(key, null)
if(am == null) {
am = new AlphaMemory(key)
map.put(key, am)
}
am
}
나에게 이것은 관용 스칼라 코드처럼 느껴지지 않습니다. 자바처럼 느껴집니다. 이것을 쓰는 더 간결한 방법이 있습니까? map.default ()를 무시하고 새 값을 삽입하고 반환 할 수있는 것처럼 보였습니다. 그래도 확실하지 않습니다.
감사!
해결책
mutable.Map
가지다 getOrElseUpdate
당신이 원하는 것을 정확하게 수행하고 관용구가 필요하지 않습니다.
제휴하지 않습니다 StackOverflow