Abgleichen mehrerer Werte
Teil des Abschnitts Logic & Flow der Rust-Journey von Coddy — Lektion 2 von 66.
Manchmal müssen Sie mehrere verschiedene Werte abgleichen, die alle denselben Code auslösen sollen. Anstatt separate Zweige für jeden Wert zu schreiben, ermöglicht Rust es Ihnen, mehrere Muster in einem einzigen Zweig mit dem | (ODER)-Operator zu kombinieren.
Hier erfahren Sie, wie Sie mehrere Werte in einem Arm abgleichen können:
let month = 12;
match month {
12 | 1 | 2 => println!("Winter"),
3 | 4 | 5 => println!("Spring"),
6 | 7 | 8 => println!("Summer"),
9 | 10 | 11 => println!("Fall"),
_ => println!("Invalid month"),
}Der |-Operator funktioniert wie das „ODER“ im Englischen – wenn der Wert mit irgendeinem der durch | getrennten Muster übereinstimmt, wird dieser Zweig ausgeführt. Dies macht Ihren Code viel sauberer, als separate Zweige zu haben, die alle dasselbe tun.
Aufgabe
EinfachSie erhalten eine Tagesnummer (1-7) als Eingabe, die einen Wochentag darstellt. Lesen Sie die Eingabe ein, konvertieren Sie diese in eine Ganzzahl und verwenden Sie einen match-Ausdruck mit dem |-Operator, um auszugeben, ob es sich um einen Wochentag oder das Wochenende handelt.
Anforderungen:
- Wenn der Tag
1,2,3,4oder5ist, geben Sie"Weekday"aus - Wenn der Tag
6oder7ist, geben Sie"Weekend"aus - Für jede andere Zahl geben Sie
"Invalid day"aus
Eingabe: Eine einzelne Ganzzahl, die die Tagesnummer darstellt
Ausgabe: Geben Sie entweder "Weekday", "Weekend" oder "Invalid day" aus
Spickzettel
Sie können mehrere Muster in einem einzigen Match-Arm kombinieren, indem Sie den | (ODER)-Operator verwenden. Wenn der Wert mit einem der durch | getrennten Muster übereinstimmt, wird dieser Arm ausgeführt.
let month = 12;
match month {
12 | 1 | 2 => println!("Winter"),
3 | 4 | 5 => println!("Spring"),
6 | 7 | 8 => println!("Summer"),
9 | 10 | 11 => println!("Fall"),
_ => println!("Invalid month"),
}Probier es selbst
use std::io;
fn main() {
// Eingabe lesen
let mut input = String::new();
io::stdin().read_line(&mut input).expect("Failed to read line");
let day: i32 = input.trim().parse().expect("Please enter a number");
// TODO: Schreiben Sie Ihren Code unten unter Verwendung eines match-Ausdrucks mit dem |-Operator
}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