Instrukcja match
Część sekcji Podstawy ścieżki Rust w Coddy. Lekcja 26 z 75.
Wyrażenie match pozwala porównać wartość z serią wzorców i wykonać kod w zależności od tego, który wzorzec pasuje.
Oto podstawowa struktura wyrażenia dopasowania:
match variable {
pattern1 => expression1,
pattern2 => expression2,
// ... więcej wzorców
_ => default_expression,
}Po słowie kluczowym match podaje się wartość, którą chcesz sprawdzić.
Każda gałąź dopasowania składa się ze wzorca, po którym następuje => i kod do wykonania.
Podkreślenie _ to domyślny przypadek, 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.
Wyzwanie
PoczątkującyUtwórz program, który przyjmuje numer miesiąca (1 oznacza styczeń, 2 luty itd.) i wypisuje porę roku, do której ten miesiąc należy. Użyj instrukcji match do obsługi 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)
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 linii
println!("status = {}", season);
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory, część 1
Operatory arytmetyczneOperator moduloSkrócone operacje arytmetyczneOperatory porównaniaPorównywanie ciągów znaków7Podstawowe wejście i wyjście
Wyświetlanie w konsoliOdczytywanie danych od użytkownikaPowtórka – do 120Powtórka – prawda czy fałsz5Operatory, część 2
Operatory logiczne, część 1Operatory logiczne, część 2Powtórka — prosta logikaOperatory logiczne, część 311Funkcje
Deklarowanie funkcjiParametry i argumentyWartości zwracaneWiele wartości zwracanychPowtórka – funkcja SigmaPowtórka – funkcja walidująca14Iterowanie po tablicach
Przewodnik po zakresachUlepszona pętla forPożyczanie w pętliTypowe operacje na tablicach3Zmienne – część 2
Deklarowanie typuKonwencje nazewnictwaWnioskowanie o typiePodsumowanie – inicjalizacja zmiennychRzutowanie typów9Pętle
Pętla for dla sekwencjiPętla whileInstrukcja breakInstrukcja continuePętle zagnieżdżoneEtykiety pętliPętla nieskończonaPodsumowanie — dynamiczne dane wejściowe12Podstawy tablic
Deklarowanie tablicTablica jako parametrDostęp do elementówModyfikowanie tablicPodsumowanie — czytelny wydruk tablicy15Operacje na ciągach znaków
Metody ciągów znakówMakro format!Konwersja ciągów znakówPowtórka — formatowaniePoćwicz samodzielnie: Kompilator Rust online