Menu
Coddy logo textTech

is_some() e is_none()

Fa parte della sezione Logica e flusso del percorso Rust di Coddy. Lezione 37 di 66.

A volte devi verificare se un Option contiene un valore senza estrarlo effettivamente. Rust fornisce due metodi pratici per farlo: .is_some() e .is_none().

Entrambi i metodi restituiscono un valore booleano, quindi sono perfetti da usare nelle condizioni 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");
}

Il metodo .is_some() restituisce true se Option contiene un valore Some e false se è None. Il metodo .is_none() funziona al contrario: restituisce true per None e false per Some.

challenge icon

Sfida

Facile

Riceverai un numero come input. Crea un Option<i32> che contenga Some(number) se il numero è positivo, oppure None se il numero è zero o negativo. Usa .is_some() e .is_none() per controllare l'Option e stampare il messaggio appropriato.

Requisiti:

  • Leggi l'input e convertilo in i32
  • Crea una variabile Option<i32>:
    • Se il numero è positivo (maggiore di 0), assegna Some(number)
    • Se il numero è zero o negativo, assegna None
  • Usa .is_some() per verificare se l'Option contiene un valore
  • Se .is_some() restituisce true, stampa: Positive number detected
  • Usa .is_none() per verificare se l'Option è vuoto
  • Se .is_none() restituisce true, stampa: No positive number

Input:

  • Un singolo numero intero (ad es. 42, 0 o -5)

Output:

  • Se il numero è positivo: Positive number detected
  • Se il numero è zero o negativo: No positive number

Provalo tu

use std::io;

fn main() {
    // Leggi l'input
    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: Scrivi il tuo codice qui sotto
    // Crea un Option<i32> in base al fatto che il numero sia positivo
    
    // Controlla se Option è Some e stampa il messaggio appropriato
    
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Rust online