繁体   English   中英

如何将 *= 和 += 等运算符与 Dart 映射和空安全性一起使用

[英]How to use operators like *= and += with Dart maps and null-safety

如果我有一个 map 像:

Map<String, int> myMap = Map();

添加键和值:

myMap.putIfAbsent("yolo", 1000);

然后使用+=之类的运算符添加一个数字

myMap["yolo"] += 100;

使用 null 安全时,它会抛出一个错误说

不能无条件调用方法“+”,因为接收者可以为“null”。

在 map 中,基于键设置值的最佳方法是什么?

预计会出现此错误。 如果您的 map 不包含带有键"yolo"的条目,则调用myMap["yolo"] += 100; 会导致运行时 null 错误。

如果0是此上下文的合理“默认值”,您可以编写如下内容:

myMap["yolo"] = (myMap["yolo"] ?? 0) + 100;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM