Menu
Coddy logo textTech

is_some() i is_none()

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

Czasami trzeba sprawdzić, czy Option zawiera wartość, bez faktycznego wyodrębniania tej wartości. Rust udostępnia do tego dwie wygodne metody: .is_some() i .is_none().

Obie metody zwracają wartość logiczną, dzięki czemu doskonale nadają się do użycia w warunkach if:

let maybe_score = Some(85);

if maybe_score.is_some() {
    println!("We have a score!");
}

if maybe_score.is_none() {
    println!("No score available");
}

Metoda .is_some() zwraca true, jeśli Option zawiera wartość Some, a false, jeśli zawiera None. Metoda .is_none() działa odwrotnie — zwraca true dla None i false dla Some.

challenge icon

Wyzwanie

Łatwy

Otrzymasz liczbę jako dane wejściowe. Utwórz Option<i32>, która zawiera Some(number), jeśli liczba jest dodatnia, lub None, jeśli liczba jest równa zero lub ujemna. Użyj .is_some() i .is_none(), aby sprawdzić Option i wypisać odpowiedni komunikat.

Wymagania:

  • Odczytaj dane wejściowe i przekonwertuj je na i32
  • Utwórz zmienną typu Option<i32>:
    • Jeśli liczba jest dodatnia (większa od 0), przypisz Some(number)
    • Jeśli liczba jest równa zero lub ujemna, przypisz None
  • Użyj .is_some(), aby sprawdzić, czy Option zawiera wartość
  • Jeśli .is_some() zwraca true, wypisz: Positive number detected
  • Użyj .is_none(), aby sprawdzić, czy Option jest pusta
  • Jeśli .is_none() zwraca true, wypisz: No positive number

Dane wejściowe:

  • Pojedyncza liczba całkowita (np. 42, 0 lub -5)

Wynik:

  • Jeśli liczba jest dodatnia: Positive number detected
  • Jeśli liczba jest równa zero lub ujemna: No positive number

Spróbuj swoich sił

use std::io;

fn main() {
    // Wczytaj 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("Invalid input");
    
    // TODO: Napisz swój kod poniżej
    // Utwórz Option<i32> w zależności od tego, czy liczba jest dodatnia
    
    // Sprawdź, czy Option ma wartość Some, i wypisz odpowiedni komunikat
    
}
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