capypad
0 Tage Serie
rust / intermediate
Snippet

HashMap Entry API für Schlüsselverwaltung

Die Entry API bietet ergonomisches Einfügen von Schlüsseln mit Fallbacks. or_insert fügt den Wert ein, wenn der Schlüssel fehlt, sonst bleibt der existierende Wert erhalten. Dieses Pattern vermeidet redundante Suchen, die bei get gefolgt von insert üblich sind.

snippet.rs
rust
1
2
3
4
5
6
7
8
9
10
11
use std::collections::HashMap;
 
fn main() {
let mut scores = HashMap::new();
scores.insert(String::from("Red"), 50);
 
scores.entry(String::from("Blue")).or_insert(100);
scores.entry(String::from("Red")).or_insert(100);
 
println!("{:?}", scores);
}
Erklärung
1
scores.entry(String::from("Blue")).or_insert(100);
Entry für "Blue" existiert nicht, also wird Wert 100 eingefügt
2
scores.entry(String::from("Red")).or_insert(100);
Entry für "Red" existiert bereits, also bleibt aktueller Wert 50 erhalten