Menu
CoddyTech

Instrukcja match

Część sekcji Podstawy ścieżki Rust w Coddy. Lekcja 26 z 75.

Wyrażenie match umożliwia porównanie wartości z serią wzorców i wykonanie kodu w zależności od tego, który wzorzec pasuje.

Oto podstawowa struktura wyrażenia match:

match variable {
	pattern1 => expression1,
	pattern2 => expression2,
	// ... więcej wzorców
	_ => default_expression,
}

Po słowie kluczowym match następuje wartość, którą chcesz przetestować.

Każde ramię dopasowania składa się ze wzorca, po którym następuje =>, a następnie kod do wykonania.

Podkreślenie _ to przypadek domyślny, który pasuje do wszystkiego, co nie pasuje do innych wzorców.

Oto przykład:

let day = 3;
let day_name = match day {
	1 => "Monday",
	2 => "Tuesday",
	3 => "Wednesday",
	// ... więcej wzorców,
	_ => "Invalid day",
};

W przypadku wielu wierszy kodu w ramieniu użyj bloku:

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

Możesz dopasować wiele wzorców za pomocą |:

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

Wyrażenia match w Rust muszą być wyczerpujące, co oznacza, że muszą obejmować wszystkie możliwe wartości. Kompilator sprawdzi to za Ciebie.

challenge icon

Wyzwanie

Początkujący

Utwórz program, który pobiera numer miesiąca (1 oznacza styczeń, 2 luty itd.) i wyświetla porę roku, do której należy. Użyj instrukcji match do określenia logiki.

Pory roku i odpowiadające im miesiące to:

  • "Winter": grudzień (12), styczeń (1), luty (2)
  • "Spring": marzec (3), kwiecień (4), maj (5)
  • "Summer": czerwiec (6), lipiec (7), sierpień (8)
  • "Autumn": wrzesień (9), październik (10), listopad (11)

Przypisz do season dokładnie te angielskie ciągi znaków, aby program wyświetlał na przykład status = Spring.

Spróbuj swoich sił

use std::io;

fn main() {
    let mut input = String::new();
    io::stdin().read_line(&mut input).unwrap();
    let month: i32 = input.trim().parse().unwrap();
    // Napisz swój kod poniżej
    let season = 

    // Nie zmieniaj poniższej linijki
    println!("status = {}", season);
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator Rust online