如果我有一个这样的映射:
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;