rust / intermediate
Snippet
Enums mit Daten und Pattern Matching
Rust-Enums sind algebraische Datentypen. Sie können in jeder Variante verschiedene Datentypen speichern, die mit 'match' elegant extrahiert werden können.
snippet.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
enum WebEvent {PageLoad,KeyPress(char),Click { x: i64, y: i64 },}fn inspect(event: WebEvent) {match event {WebEvent::PageLoad => println!("page loaded"),WebEvent::KeyPress(c) => println!("pressed '{}'", c),WebEvent::Click { x, y } => println!("clicked at {}, {}", x, y),}}
Erklärung
1
KeyPress(char),
Eine Variante, die ein einzelnes Zeichen enthält.
2
WebEvent::Click { x, y } =>
Vergleicht das Muster der Click-Variante und bindet die Felder an die Variablen x und y.