2014-01-30 3 views
2

맵을 반전하려고 다음 방법을 호출하는 구문 미세이 작품이다 라는 과부하 연산자 함수 직접

var x = { 'dart' : 'fun', 'dentist' : 'painful', }; 
    var xInv = x.keys.fold({}, (prev, elm) { prev[x[elm]] = elm; return prev; }); 

호출 '연산자 [] =()'으로 구문 있는가 직접적으로 계단식을 사용할 수도 있습니까? 이와 같이 작동하지 않는 것 :

var xInv = x.keys.fold({}, (prev, elm) => prev..'operator[]='(x[k], k)); 
    var xInv = x.keys.fold({}, (prev, elm) => prev..operator[]=(x[k], k)); 

답변

2

이것은 원하는 것이 아닙니다.

Map<String,String> xInv2 = x.keys.fold({}, 
    (Map<String,String> prev, String elm) => prev..[x[elm]] = elm); 

return 문을 사용하여 첫 번째 예제와 동일한 결과를 만듭니다.

(당신은 비록 형의 주석을 추가 할 추가 할 필요가 없습니다 나 코드의 의도를 파악하는 것은 다만 쉽다.)

+1

을 그냥 내가 찾던 - 구문을 적용하는 방법을 알고하지 않았다 . – user1338952