如何增加地图中的计数器并获取当前计数

问题描述 投票:0回答:1

我可以用一个表达式来完成这个任务吗?

*map.entry(key).or_default() += 1;
let count = *map.get(&key);

理想情况下,我希望这是一个原子操作,但如果需要我可以锁定。

dictionary rust
1个回答
0
投票

您可以:

let count = *map.entry(key).and_modify(|v| *v += 1).or_insert(1);

这将:

  • 获取或创建条目
  • 如果存在,则增加它
  • 如果不存在,则插入1
  • 返回对该值的引用,然后我们取消引用
© www.soinside.com 2019 - 2024. All rights reserved.