如何在 Rust 中遍历 HashMap 并打印键/值以及删除元素?
大家好!我是 Rust 新手,正在尝试解决一个简单的问题:我有一个 `HashMap`,想要遍历它的所有元素,打印出“键-值”对,然后根据条件删除其中一些元素(例如,所有值小于 10 的元素)。问题在于 borrow checker 不允许我这样做。
以下是我的代码,无法编译:
```rust
use std::collections::HashMap;
fn main() {
let mut map = HashMap::new();
map.insert("apple".to_string(), 5);
map.insert("banana".to_string(), 15);
map.insert("cherry".to_string(), 3);
for (key, value) in &map {
println!("{}: {}", key, value);
if *value < 10 {
map.remove(key); // 错误!
}
}
}
```
编译器报错:`cannot borrow 'map' as mutable because it is also borrowed as immutable`。我明白这与借用规则有关,但不知道如何正确绕过这个限制。我尝试过使用 `.iter()` 和 `.iter