capypad
0 Tage Serie
rust / beginner
Snippet

Musterabgleich mit match

Der match-Ausdruck vergleicht einen Wert mit mehreren Mustern und fuhrt den ersten passenden Arm aus. Er muss erschopfend sein und alle moglichen Werte mit einem Platzhalter _ abdecken. Du kannst Bereiche (2..=5), Wachen (if Bedingung) und Variablen-Capturing (n) verwenden.

snippet.rs
rust
1
2
3
4
5
6
7
8
9
10
fn main() {
let number = 7;
match number {
1 => println!("One"),
2..=5 => println!("Two to Five"),
n if n % 2 == 0 => println!("Even number"),
_ => println!("Other: {}", number),
}
}
Erklärung
1
match number {
Startet den Musterabgleich auf der Variable number
2
1 => println!("One"),
Matcht den literalen Wert 1 genau
3
2..=5 => println!("Two to Five"),
Matcht jeden Wert von 2 bis 5 inklusive
4
n if n % 2 == 0 => println!("Even number"),
Guard-Muster: fangt Wert ab und pruft Bedingung
5
_ => println!("Other: {}", number),
Platzhalter fangt alle verbleibenden Falle ab