Menu
Coddy logo textTech

Match-Anweisung

Teil des Abschnitts Fundamentals der Rust-Journey von Coddy — Lektion 26 von 75.

Der match-Ausdruck ermöglicht es Ihnen, einen Wert mit einer Reihe von Mustern zu vergleichen und Code basierend darauf auszuführen, welches Muster übereinstimmt.

Hier ist die Grundstruktur eines match-Ausdrucks:

match variable {
	pattern1 => expression1,
	pattern2 => expression2,
	// ... weitere Muster
	_ => default_expression,
}

Das Schlüsselwort match wird gefolgt von dem Wert, den Sie testen möchten.

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 nicht durch andere Muster abgedeckt wird.

Hier ist ein Beispiel:

let day = 3;
let day_name = match day {
	1 => "Monday",
	2 => "Tuesday",
	3 => "Wednesday",
	// ... weitere Muster,
	_ => "Invalid day",
};

Für mehrere Codezeilen in einem Zweig verwenden Sie 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",
};

Sie können mehrere Muster mit | 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 erschöpfend sein, was bedeutet, dass sie alle möglichen Werte abdecken müssen. Der Compiler wird dies für Sie prüfen.

challenge icon

Aufgabe

Anfänger

Erstellen Sie ein Programm, das eine Monatsnummer (1 für Januar, 2 für Februar usw.) entgegennimmt und die Jahreszeit ausgibt, zu der sie gehört. Verwenden Sie eine match-Anweisung für die Logik.

Die Jahreszeiten und ihre entsprechenden Monate sind:

  • Winter: Dezember (12), Januar (1), Februar (2)
  • Spring: März (3), April (4), Mai (5)
  • Summer: Juni (6), Juli (7), August (8)
  • Autumn: September (9), Oktober (10), November (11)

Spickzettel

Der match-Ausdruck vergleicht einen Wert mit Mustern und führt Code basierend darauf aus, welches Muster übereinstimmt:

match variable {
    pattern1 => expression1,
    pattern2 => expression2,
    _ => default_expression,
}

Grundlegendes Beispiel:

let day = 3;
let day_name = match day {
    1 => "Monday",
    2 => "Tuesday",
    3 => "Wednesday",
    _ => "Invalid day",
};

Für mehrere Codezeilen in einem Zweig verwenden Sie einen Block:

let day = 3;
let day_name = match day {
    1 => {
        println!("First day of the week!");
        "Monday"
    },
    2 => "Tuesday",
    _ => "Invalid day",
};

Mehrere Muster mit | abgleichen:

let day = 3;
let day_type = match day {
    1 | 2 | 3 | 4 | 5 => "Weekday",
    6 | 7 => "Weekend",
    _ => "Invalid day",
};

Match-Ausdrücke müssen erschöpfend sein – sie müssen alle möglichen Werte abdecken. Der Unterstrich _ ist der Standardfall, der auf alles passt, was nicht durch andere Muster abgedeckt wurde.

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 unten
    let season = 

    // Ändere die folgende Zeile nicht
    println!("status = {}", season);
}
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 Fundamentals