尝试反转地图,以下方法可以正常工作:
var x = { 'dart' : 'fun', 'dentist' : 'painful', };
var xInv = x.keys.fold({}, (prev, elm) { prev[x[elm]] = elm; return prev; });
是否有语法直接调用'operator [] =(,)',所以你也可以使用级联?像这样的东西不起作用:
var xInv = x.keys.fold({}, (prev, elm) => prev..'operator[]='(x[k], k));
var xInv = x.keys.fold({}, (prev, elm) => prev..operator[]=(x[k], k));
答案 0 :(得分:2)
这不是你想要的?
Map<String,String> xInv2 = x.keys.fold({},
(Map<String,String> prev, String elm) => prev..[x[elm]] = elm);
使用return语句创建与第一个示例相同的结果。
(您不必添加添加类型注释。我更容易理解代码的意图)