Menu
CoddyTech

Wyrażenie „match”

Część sekcji Logika i przepływ programu ścieżki Rust w Coddy. Lekcja 1 z 66.

Wyrażenie match to potężne narzędzie Rust do dopasowywania wzorców, które pozwala porównywać wartość z różnymi wzorcami i wykonywać kod w zależności od tego, który wzorzec pasuje. Możesz myśleć o nim jak o bardziej zaawansowanej wersji instrukcji if, która pozwala elegancko obsługiwać wiele warunków.

Oto podstawowa składnia wyrażenia match:

match value {
    pattern1 => code_to_run,
    pattern2 => code_to_run,
    _ => default_code,
}

Każdy wiersz wewnątrz match nazywa się „ramieniem”. => oddziela wzorzec od kodu, który jest wykonywany, gdy ten wzorzec pasuje. Podkreślenie _ to specjalny wzorzec wieloznaczny, który pasuje do wszystkiego — działa jak „wzorzec domyślny” dla każdej wartości, która nie pasuje do pozostałych wzorców.

Oto prosty przykład, który sprawdza liczbę:

let number = 2;

match number {
    1 => println!("One"),
    2 => println!("Two"),
    _ => println!("Other"),
}

W Rust wyrażenia match muszą być wyczerpujące, co oznacza, że muszą obsługiwać każdą możliwą wartość. Dlatego symbol wieloznaczny _ jest tak ważny — gwarantuje, że uwzględniono wszystkie przypadki, które nie zostały dopasowane jawnie.

match jest wyrażeniem, więc może też zwracać wartość. Gdy jest ostatnim wyrażeniem w funkcji, wartość pasującej gałęzi jest tym, co zwraca funkcja:

fn day_name(day: i32) -> String {
    match day {
        1 => String::from("Monday"),
        2 => String::from("Tuesday"),
        _ => String::from("Another day"),
    }
}

Ponieważ ta funkcja zwraca wartość typu String, każda gałąź zamienia swój tekst (wartość typu &str) na String za pomocą String::from lub .to_string().

challenge icon

Wyzwanie

Łatwy

Napisz funkcję describe_number, która przyjmuje num i zwraca opis w postaci ciągu znaków na podstawie wartości liczby.

Użyj wyrażenia match, aby zwracać różne opisy dla różnych liczb.

Warunki:

  • Jeśli num ma wartość 0, zwróć "zero"
  • Jeśli num ma wartość 1, zwróć "one"
  • Jeśli num ma wartość 2, zwróć "two"
  • Jeśli num ma wartość 3, zwróć "three"
  • Dla każdej innej liczby zwróć "many"

Parametry:

  • num (i32): Liczba do opisania

Zwraca: Opis liczby w postaci ciągu znaków (String)

Spróbuj swoich sił

fn describe_number(num: i32) -> String {
    // Napisz kod tutaj
}
quiz iconSprawdź się

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

Poćwicz samodzielnie: Kompilator Rust online