增量在地图更新方法中有效吗? (镖。)

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);