Menu
Coddy logo textTech

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.

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)

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
}
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 Logic & Flow