Wyrażenie „if let”
Część sekcji Logika i przepływ programu ścieżki Rust w Coddy. Lekcja 4 z 66.
Czasami musisz sprawdzić tylko jeden konkretny wzorzec i nie interesują Cię wszystkie pozostałe możliwości. Zapisanie pełnego wyrażenia match z tylko jednym znaczącym ramieniem i wychwytującym wszystko _ może wydawać się rozwlekłe. Rust udostępnia if let jako zwięźlejszą alternatywę w takich sytuacjach.
Wyrażenie if let pozwala połączyć dopasowywanie do wzorca z logiką warunkową w jednym, czytelnym wyrażeniu. Oto podstawowa składnia:
if let pattern = value {
// kod do wykonania, jeśli pattern pasuje
}Na przykład, zamiast pisać match z tylko jednym użytecznym ramieniem:
let number = 5;
match number {
5 => println!("Found five!"),
_ => (), // nie rób nic dla innych wartości
}Możesz użyć if let, aby kod był czytelniejszy:
let number = 5;
if let 5 = number {
println!("Found five!");
}Wyrażenie if let wykonuje blok kodu tylko wtedy, gdy wzorzec pasuje. Jeśli nie pasuje, nic się nie dzieje — nie trzeba jawnie definiować przypadku „else”, chyba że chcesz.
Wyzwanie
ŁatwyOtrzymasz liczbę jako dane wejściowe. Odczytaj dane wejściowe, przekonwertuj je na liczbę całkowitą i użyj wyrażenia if let, aby sprawdzić, czy liczba wynosi dokładnie 42. Jeśli tak, wypisz "The answer!". Jeśli nie, nic nie wypisuj.
Wymagania:
- Użyj wyrażenia
if let, aby sprawdzić, czy liczba jest równa42 - Jeśli liczba wynosi
42, wypisz"The answer!" - Jeśli liczba jest inna, nic nie wypisuj
Dane wejściowe: Jedna liczba całkowita
Dane wyjściowe: Wypisz "The answer!", jeśli liczba wynosi 42, w przeciwnym razie nic nie wypisuj
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 number: i32 = input.trim().parse().expect("Please enter a valid number");
// TODO: Napisz swój kod poniżej
// Użyj if let, aby sprawdzić, czy number jest równe 42
}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