Avatar ·

如何在 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