Der 'match'-Ausdruck
Teil des Abschnitts Logic & Flow der Rust-Journey von Coddy — Lektion 1 von 66.
Der match-Ausdruck ist das leistungsstarke Pattern-Matching-Werkzeug von Rust, mit dem Sie einen Wert mit verschiedenen Mustern vergleichen und Code basierend darauf ausführen können, welches Muster übereinstimmt. Betrachten Sie es als eine fortgeschrittenere Version von if-Anweisungen, die mehrere Bedingungen elegant handhaben kann.
Hier ist die grundlegende Syntax eines match-Ausdrucks:
match value {
pattern1 => code_to_run,
pattern2 => code_to_run,
_ => default_code,
}Jede Zeile innerhalb des match wird als „Arm“ bezeichnet. Das => trennt das Muster von dem Code, der ausgeführt wird, wenn dieses Muster übereinstimmt. Der Unterstrich _ ist ein spezielles Platzhalter-Muster, das auf alles passt – es ist wie ein „Auffangbecken“ für jeden Wert, der nicht mit den anderen Mustern übereinstimmt.
Hier ist ein einfaches Beispiel, das eine Zahl prüft:
let number = 2;
match number {
1 => println!("One"),
2 => println!("Two"),
_ => println!("Other"),
}In Rust müssen match-Ausdrücke vollständig sein, was bedeutet, dass sie jeden möglichen Wert behandeln müssen. Deshalb ist der Platzhalter _ so wichtig – er stellt sicher, dass alle Fälle abgedeckt sind, die nicht explizit abgeglichen wurden.
Aufgabe
EinfachSchreiben Sie eine Funktion describe_number, die num entgegennimmt und eine String-Beschreibung basierend auf dem Wert der Zahl zurückgibt.
Verwenden Sie einen match-Ausdruck, um verschiedene Beschreibungen für verschiedene Zahlen zurückzugeben.
Bedingungen:
- Wenn
numgleich0ist, geben Sie"zero"zurück - Wenn
numgleich1ist, geben Sie"one"zurück - Wenn
numgleich2ist, geben Sie"two"zurück - Wenn
numgleich3ist, geben Sie"three"zurück - Für jede andere Zahl geben Sie
"many"zurück
Parameter:
num(i32): Die zu beschreibende Zahl
Rückgabewert: Eine String-Beschreibung der Zahl (String)
Spickzettel
Der match-Ausdruck vergleicht einen Wert mit verschiedenen Mustern und führt Code basierend darauf aus, welches Muster übereinstimmt:
match value {
pattern1 => code_to_run,
pattern2 => code_to_run,
_ => default_code,
}Jede Zeile innerhalb des match wird als „Arm“ bezeichnet. Das => trennt das Muster von dem Code, der ausgeführt wird, wenn dieses Muster übereinstimmt.
Beispiel:
let number = 2;
match number {
1 => println!("One"),
2 => println!("Two"),
_ => println!("Other"),
}Der Unterstrich _ ist ein Platzhalter-Muster (Wildcard), das auf alles passt, was nicht durch andere Muster abgedeckt ist. match-Ausdrücke müssen vollständig (exhaustive) sein – sie müssen jeden möglichen Wert behandeln.
Probier es selbst
fn describe_number(num: i32) -> String {
// Code hier schreiben
}
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logic & Flow
1Fortgeschrittener Kontrollfluss
Der 'match'-AusdruckAbgleichen mehrerer WerteBereiche abgleichenDer 'if let'-AusdruckSchleifen als AusdrückeRückblick – Einfacher Befehls-Parser4Daten gruppieren mit Structs
Was ist ein Struct?Übersicht über StructsZugriff auf Struct-FelderVeränderbare StructsStructs als FunktionsparameterTupel-StructsZusammenfassung – Ein Buch-Struct erstellen2Einführung in Vektoren
Was ist ein Vektor?Einen Vektor erstellenElemente mit push hinzufügenZugriff auf Vektor-ElementeÜber einen Vektor iterierenVeränderliche IterationElemente entfernenZusammenfassung – Einfacher Score-Tracker5Schlüssel-Wert-Paare mit Hash Maps
Was ist eine Hash Map?Erstellen einer Hash MapEinfügen von Schlüssel-Wert-PaarenZugreifen auf WerteIterieren über eine Hash MapAktualisieren eines WertesEntfernen eines PaaresZusammenfassung – Wortzähler8Projekt: Einfaches Artikelinventar
Projekt-SetupEinen Artikel hinzufügenLagerbestand prüfenEinen Artikel verkaufenAlles zusammenfügen11Abschluss-Herausforderungen
Wiederholung - Einzigartige ElementeWiederholung - Benutzerprofil-ValidatorWiederholung - Noten-Zusammenfassung3Kommandozeilen-To-Do-Liste
Projekt-SetupEine Aufgabe hinzufügenAlle Aufgaben anzeigenEine Aufgabe entfernenFinaler Code