rust / beginner
Snippet
if let - Kompakter Musterabgleich
if let bietet eine kompakte Methode um einzelne Musterabgleiche ohne die erschopfenden Anforderungen von match zu behandeln. Es extrahiert Werte aus Enum-Varianten. while let setzt die Schleife fort wahrend ein Muster matcht, nutzlich fur Iteratoren und Streams.
snippet.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
enum Color {Red,Blue,Green,Custom(u8, u8, u8),}fn main() {let preferred = Color::Custom(100, 50, 150);if let Color::Custom(r, g, b) = preferred {println!("Custom RGB: {}, {}, {}", r, g, b);} else {println!("Standard color");}while let Color::Blue = Color::Blue {println!("Blue detected!");break;}}
Erklärung
1
enum Color { Red, Blue, Green, Custom(u8, u8, u8) }
Enum mit Einheitsvarianten und Tuple-Variante Custom
2
if let Color::Custom(r, g, b) = preferred {
Bindet Felder aus der passenden Variante
3
while let Color::Blue = Color::Blue {
Schleife lauft weiter solange Muster matcht