我尝试使用代码,其片段如下:
void main() {
List someData = [1.5, 2.0, 6.8, 1.5, 3.0, 1.5, 6.8];
Map<double, int> formedMap = Map();
someData.forEach((element){
formedMap.update(element, (value) => value++, ifAbsent: () => 1);
});
print(formedMap);
}
此代码返回
formedMap={1.5: 1, 2: 1, 6.8: 1, 3: 1}
代替
formedMap={1.5: 3, 2: 1, 6.8: 2, 3: 1}
我用另一种方式解决了这个片段的任务。但我想知道这个错误的原因。这是我的失败还是 Dart 特性?
最佳答案
问题是:在递增之前返回该值。
从https://dart.dev/guides/language/language-tour#operators看一下
因此,请使用++value
而不是value++
像这样
someData.forEach((element){
formedMap.update(element, (value) => ++value, ifAbsent: () => 1);
});
print(formedMap);
关于dart - 增量可以在 map 更新方法中使用吗? ( Dart 。),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62049812/