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
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