문제

나는 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 당신이 원하는 것을 정확하게 수행하고 관용구가 필요하지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top