Вот что я пытаюсь сделать:
use std::collections::HashMap;
fn main() {
let mut my_map = HashMap::new();
my_map.insert("a", 1);
my_map.insert("b", 3);
my_map["a"] += 10;
// my expected outputs is my_map becomes {"b": 3, "a": 11}
}
Вызывает следующую ошибку:
error: cannot assign to immutable indexed content
--> src/main.rs:8:5
|
8 | my_map["a"] += 10;
| ^^^^^^^^^^^^^^^^^ cannot borrow as mutable
Я действительно не понимаю, что это значит, так как я сделал HashMap
изменчивым. Когда я пытаюсь обновить элемент в vector
, я получаю ожидаемый результат:
let mut my_vec = vec!{1,2,3};
my_vec[0] += 10;
println!{"{:?}", my_vec};
// [11, 2, 3]
Чем отличается HashMap
, что я получаю вышеуказанную ошибку? Есть ли способ обновить значение?