我正在寻找一种方法来更新一个不变的HashMap
的值.
我不想插入或删除HashMap
中的值,只想更新现有的值.
所以我将HashMap
对象保持为不变,但有了它,我就不能更新存储在map
中的值.
以下是示例代码:
fn main() {
let map = std::collections::HashMap::from([(1,1)]);
println!("{map:?}");
match map.get_mut(&1) {
None=>{},
Some(val)=>*val=2,
}
println!("{map:?}");
}
我已经知道了,把map
变成mut
这个代码行得通.但我想知道
- 为什么我无法更改包含在
map
中的对象? - 在Rust中有没有哈希图的实现,我可以在其中更改不变的
map
上包含的值?
Side Note:Why do I need this?.
I want to protect map object with 100 (or similar concepts), so some code can add/remove to map object and some code can just update existing object.