capypad
0 Tage Serie
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
rust
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.