Dopasowywanie zakresów
Część sekcji Logika i przepływ programu ścieżki Rust w Coddy. Lekcja 3 z 66.
Gdy musisz sprawdzić, czy wartość mieści się w określonym zakresie liczb, pisanie osobnych gałęzi dla każdej wartości byłoby żmudne. Wyrażenie match w Rust obsługuje wzorce zakresów, które pozwalają dopasowywać wartości z ciągłego zakresu za pomocą składni start..=end.
Operator ..= tworzy zakres domknięty, co oznacza, że zarówno wartość początkowa, jak i końcowa są uwzględniane w dopasowaniu. Oto jak możesz używać zakresów w ramionach dopasowania:
let temp = 22;
match temp {
..=0 => println!("Freezing"),
1..=15 => println!("Cold"),
_ => println!("Warm"),
}W tym przykładzie temperatura 22 nie pasowałaby do dwóch pierwszych zakresów, więc przechodzi do ramienia wieloznacznego i wypisuje „Warm”. Zakres 1..=15 obejmuje zarówno 1, jak i 15, więc każda temperatura od 1 do 15 wypisałaby „Cold”.
Wyzwanie
ŁatwyOtrzymasz wiek jako dane wejściowe. Odczytaj dane wejściowe, przekonwertuj je na liczbę całkowitą i użyj wyrażenia match z wzorcami zakresów, aby wypisać odpowiednią kategorię wiekową.
Wymagania:
- Jeśli wiek mieści się w zakresie
0..=12, wypisz"Child" - Jeśli wiek mieści się w zakresie
13..=19, wypisz"Teenager" - Jeśli wiek mieści się w zakresie
20..=64, wypisz"Adult" - Jeśli wiek mieści się w zakresie
65..=120, wypisz"Senior" - W przypadku każdego innego wieku wypisz
"Invalid age"
Dane wejściowe: Jedna liczba całkowita reprezentująca wiek
Wynik: Wypisz kategorię wiekową: "Child", "Teenager", "Adult", "Senior" lub "Invalid age"
Spróbuj swoich sił
use std::io;
fn main() {
// Odczytaj dane wejściowe
let mut input = String::new();
io::stdin().read_line(&mut input).expect("Failed to read line");
let age: i32 = input.trim().parse().expect("Please enter a valid number");
// TODO: Napisz poniżej kod, używając wyrażenia match ze wzorcami zakresowymi
// Wypisz wynik
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ programu
1Zaawansowane sterowanie przepływem
Wyrażenie „match”Dopasowywanie wielu wartościDopasowywanie zakresówWyrażenie „if let”Pętle jako wyrażeniaPodsumowanie — prosty parser poleceń4Grupowanie danych za pomocą struktur
Czym jest struktura?Przegląd strukturDostęp do pól strukturyModyfikowalne strukturyStruktury jako parametry funkcjiStruktury krotkowePodsumowanie — utwórz strukturę Book2Wprowadzenie do wektorów
Czym jest wektor?Tworzenie wektoraDodawanie elementów za pomocą pushDostęp do elementów wektoraIterowanie po wektorzeIterowanie z możliwością modyfikacjiUsuwanie elementówPodsumowanie — prosty licznik punktów5Pary klucz–wartość z mapami hashującymi
Czym jest mapa haszująca?Tworzenie mapy haszującejWstawianie par klucz–wartośćDostęp do wartościIterowanie po mapie haszującejAktualizowanie wartościUsuwanie paryPodsumowanie – licznik słów8Projekt: Prosty system inwentaryzacji
Konfiguracja projektuDodawanie produktuSprawdzanie stanu magazynowegoSprzedaż produktuŁączenie wszystkiego w całość3Lista zadań w wierszu poleceń
Konfiguracja projektuDodawanie zadaniaWyświetlanie wszystkich zadańUsuwanie zadaniaKońcowy kodPoćwicz samodzielnie: Kompilator Rust online