Menu
CoddyTech

Der 'match'-Ausdruck

Teil des Abschnitts Logik & Kontrollfluss der Rust-Journey von Coddy. Lektion 1 von 66.

Der Ausdruck match ist Rusts leistungsstarkes Werkzeug für den Musterabgleich. Damit kannst du einen Wert mit verschiedenen Mustern vergleichen und abhängig davon, welches Muster passt, Code ausführen. Stell ihn dir als eine fortgeschrittenere Version von if-Anweisungen vor, die mehrere Bedingungen elegant behandeln 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. => trennt das Muster von dem Code, der ausgeführt wird, wenn dieses Muster übereinstimmt. Der Unterstrich _ ist ein spezielles Platzhaltermuster, das auf alles passt – es ist wie ein „Auffangmuster“ für jeden Wert, der nicht zu den anderen Mustern passt.

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, das heißt, sie müssen jeden möglichen Wert behandeln. Deshalb ist der Platzhalter _ so wichtig – er stellt sicher, dass du alle Fälle abgedeckt hast, die nicht ausdrücklich abgeglichen wurden.

match ist ein Ausdruck und kann daher auch einen Wert erzeugen. Wenn er der letzte Ausdruck in einer Funktion ist, ist der Wert des passenden Arms der Wert, den die Funktion zurückgibt:

fn day_name(day: i32) -> String {
    match day {
        1 => String::from("Monday"),
        2 => String::from("Tuesday"),
        _ => String::from("Another day"),
    }
}

Da diese Funktion einen String zurückgibt, wandelt jeder Arm seinen Text (ein &str) mit String::from oder .to_string() in einen String um.

challenge icon

Aufgabe

Einfach

Schreiben 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 num gleich 0 ist, geben Sie "zero" zurück
  • Wenn num gleich 1 ist, geben Sie "one" zurück
  • Wenn num gleich 2 ist, geben Sie "two" zurück
  • Wenn num gleich 3 ist, 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)

Probier es selbst

fn describe_number(num: i32) -> String {
    // Schreibe hier Code
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Kontrollfluss

Übe selbstständig: Online-Rust-Compiler