增量在地图更新方法中有效吗? (镖。)
Does increment work in map update method? (Dart.)
我尝试使用具有如下片段的代码:
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);
}
此代码return
formedMap={1.5: 1, 2: 1, 6.8: 1, 3: 1}
改为
formedMap={1.5: 3, 2: 1, 6.8: 2, 3: 1}
我已经用另一种方式解决了这个片段的任务。但是我想知道这个错误的原因。这是我的 fail 还是 dart 属性?
问题是:值在递增之前返回。
看看这个来自 https://dart.dev/guides/language/language-tour#operators
所以使用 ++value
而不是 value++
像这样
someData.forEach((element){
formedMap.update(element, (value) => ++value, ifAbsent: () => 1);
});
print(formedMap);
我尝试使用具有如下片段的代码:
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);
}
此代码return
formedMap={1.5: 1, 2: 1, 6.8: 1, 3: 1}
改为
formedMap={1.5: 3, 2: 1, 6.8: 2, 3: 1}
我已经用另一种方式解决了这个片段的任务。但是我想知道这个错误的原因。这是我的 fail 还是 dart 属性?
问题是:值在递增之前返回。
看看这个来自 https://dart.dev/guides/language/language-tour#operators
所以使用 ++value
而不是 value++
像这样
someData.forEach((element){
formedMap.update(element, (value) => ++value, ifAbsent: () => 1);
});
print(formedMap);