Match-Anweisung
Teil des Abschnitts Grundlagen der Rust-Journey von Coddy. Lektion 26 von 75.
Der match-Ausdruck ermöglicht es dir, einen Wert mit einer Reihe von Mustern zu vergleichen und Code abhängig davon auszuführen, welches Muster übereinstimmt.
Hier ist die grundlegende Struktur eines Match-Ausdrucks:
match variable {
pattern1 => expression1,
pattern2 => expression2,
// ... weitere Muster
_ => default_expression,
}Auf das Schlüsselwort match folgt der Wert, den du testen möchtest.
Jeder Zweig des Match-Ausdrucks besteht aus einem Muster, gefolgt von => und dem auszuführenden Code.
Der Unterstrich _ ist der Standardfall, der auf alles passt, was von anderen Mustern nicht erfasst wird.
Hier ist ein Beispiel:
let day = 3;
let day_name = match day {
1 => "Monday",
2 => "Tuesday",
3 => "Wednesday",
// ... weitere Muster,
_ => "Invalid day",
};Verwende für mehrere Codezeilen in einem Arm einen Block:
let day = 3;
let day_name = match day {
1 => {
println!("First day of the week!");
"Monday"
},
2 => "Tuesday",
// ... andere Fälle
_ => "Invalid day",
};Du kannst mehrere Muster mithilfe von | abgleichen:
let day = 3;
let day_type = match day {
1 | 2 | 3 | 4 | 5 => "Weekday",
6 | 7 => "Weekend",
_ => "Invalid day",
};Match-Ausdrücke in Rust müssen vollständig sein, das heißt, sie müssen alle möglichen Werte abdecken. Der Compiler überprüft dies für dich.
Aufgabe
AnfängerErstelle ein Programm, das eine Monatsnummer entgegennimmt (1 für Januar, 2 für Februar usw.) und die Jahreszeit ausgibt, zu der sie gehört. Verwende für die Logik eine match-Anweisung.
Die Jahreszeiten und ihre entsprechenden Monate sind:
- Winter: Dezember (12), Januar (1), Februar (2)
- Frühling: März (3), April (4), Mai (5)
- Sommer: Juni (6), Juli (7), August (8)
- Herbst: September (9), Oktober (10), November (11)
Probier es selbst
use std::io;
fn main() {
let mut input = String::new();
io::stdin().read_line(&mut input).unwrap();
let month: i32 = input.trim().parse().unwrap();
// Schreibe deinen Code darunter
let season =
// Ändere die Zeile darunter nicht
println!("status = {}", season);
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorArithmetische AbkürzungenVergleichsoperatorenString-Vergleich7Grundlagen IO
Ausgabe in die KonsoleBenutzereingaben lesenWiederholung - Bis 120Wiederholung - Wahr oder Falsch5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Wiederholung - Einfache LogikLogische Operatoren Teil 311Funktionen
Funktionen deklarierenParameter und ArgumenteRückgabewerteMehrere RückgabewerteWiederholung - Sigma-FunktionWiederholung - Validierungsfunktion14Iterieren über Arrays
Range-LeitfadenErweiterte For-SchleifeBorrowing in SchleifenGängige Array-Operationen3Variablen Teil 2
TypdeklarationNamenskonventionenTypinferenzRückblick - Variablen initialisierenTypumwandlung6Entscheidungsfindung
If-AusdrückeIf-ElseMatch-AnweisungZusammenfassung - If-ElseVerschachteltes If-Else9Schleifen
For-Schleife über SerienWhile-SchleifeBreakContinueVerschachtelte SchleifenSchleifen-LabelsEndlosschleifeRückblick – Dynamische EingabeÜbe selbstständig: Online-Rust-Compiler