rust / intermediate
Snippet
Effiziente Map-Updates mit der Entry-API
Die Entry-API ermöglicht es, die Existenz eines Schlüssels zu prüfen und eine Operation in einem einzigen Schritt durchzuführen. Dies vermeidet doppelte Lookups und bietet eine ausdrucksstärkere Art der bedingten Einfügung.
snippet.rs
1
2
3
4
5
6
7
8
use std::collections::HashMap;let mut scores = HashMap::new();let team = String::from("Blue");scores.entry(team).and_modify(|e| *e += 10).or_insert(50);println!("{:?}", scores);
Erklärung
1
scores.entry(team)
Gibt ein Entry-Enum zurück, das entweder eine belegte oder freie Stelle repräsentiert.
2
and_modify(|e| *e += 10)
Wendet eine Closure auf den Wert an, falls der Eintrag bereits belegt ist.
3
or_insert(50)
Fügt den angegebenen Wert ein, falls der Eintrag frei ist, und gibt eine veränderliche Referenz zurück.