Avatar ·

Wie man über eine HashMap iteriert, Schlüssel/Wert ausgibt und Elemente in Rust löscht?

Hallo zusammen! Ich bin ein Anfänger in Rust und versuche eine einfache Aufgabe zu lösen: Ich habe eine `HashMap` und möchte über alle ihre Elemente iterieren, die Schlüssel-Wert-Paare ausgeben und dann einige davon basierend auf einer Bedingung löschen (z.B. alle, bei denen der Wert kleiner als 10 ist). Das Problem ist, dass der Borrow Checker mir das nicht erlaubt. Hier ist mein Code, der nicht kompiliert: ```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); // Fehler! } } } ``` Der Compiler gibt einen Fehler aus: `cannot borrow 'map' as mutable because it is also borrowed as immutable`. Ich verstehe, dass dies mit den Ausleihregeln zusammenhängt, weiß aber nicht, wie ich diese Einschränkung richtig umgehen kann. Ich habe versucht, `.iter()` und `.iter_mut()` zu verwenden, aber das hat nicht funktioniert.