我想修改映射中的现有项,就像在用新的键替换现有键的值一样,如果键在映射中还不存在,则添加一个子句,以简单地创建一个新的键和值对.DART文档建议使用update方法来实现此目的,但我不太确定如何使用可选的ifAbsend()参数来实现它,我假设如果要更新的键不存在,则会调用一行代码.

V update(K key, V update(V value), {V ifAbsent()});

根据文档,有一个要获取的可选参数,但它显示了一个错误,指出参数太多,需要2个,但找到3个.

这表明没有错误(尚未测试,但理论上应该有效):

userData.update(key, value);

这(使用添加的CREATE IF NOT EXIST子句)执行以下操作:

userData.update(key, value,
  userData[key] = value;
  );

任何帮助获得后者或相当于工作的人都非常感激!我想我在这里漏掉了一些很明显的东西.

推荐答案

这是一个命名参数,可以这样使用:

userData.update(
  key, 
  // You can ignore the incoming parameter if you want to always update the value even if it is already in the map
  (existingValue) => value, 
  ifAbsent: () => value,
);

Dart相关问答推荐

dart run edge build cloudflare_workers --dev 命令在我的项目(笔记本电脑)中不起作用

Flutter 网页打开网址并获取数据

如何在flutter中管理switch小部件的原生外观

Flutter Getx - 未找到Xxx.您需要调用Get.put(Xxx()) - 但我已调用 Get.put(Xxx())

在 Column Flutter 中居中展开 ListView

Flutter Expansion Tile -- 标题 colored颜色 变化和尾随动画箭头 colored颜色 变化

跳过 JavaScript 直接进入 Dart

在`lib`文件夹中使用`src`子文件夹有什么好处吗

你如何在 Polymer 中调度和监听自定义事件?

将 Flutter 前端与 Android 和 iOS 的 .NET Core 后端相结合

如何在 Flutter 包/插件开发中添加assets?

如何在Flatter中将图表线 colored颜色 更改为自定义 colored颜色 代码值

在Dart streams中,listen和forEach有什么区别?

Dart:Streams与 ValueNotifiers

如何在Flutter中返回异步函数的值?

如何在命令行上创建和运行Dart元素

如何在 Flutter 中匹配密码和确认密码?

将函数/方法分配给 Dart 中的变量

何时使用polymer点击或点击?

将`_`(即下划线)作为唯一参数传递给 Dart 语言函数是什么意思?