Menu
Coddy logo textTech

Che cos'è un 'Option'?

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

Nella programmazione, spesso ti imbatti in situazioni in cui un valore potrebbe essere presente oppure no. Per esempio, cercando un elemento in un elenco potresti trovarlo, oppure potrebbe non esistere affatto. I linguaggi di programmazione tradizionali spesso usano valori speciali come null o -1 per rappresentare il «nulla», ma questo approccio può causare bug e arresti anomali.

Rust adotta un approccio diverso con l'enum Option<T>. Questo è un tipo integrato che rappresenta esplicitamente la possibilità che un valore sia assente. Invece di indovinare se un valore esiste, Rust ti obbliga a gestire entrambi i casi fin dall'inizio.

L'enum Option ha esattamente due varianti:

Some(value)  // Contiene un valore
None         // Non contiene alcun valore

Quando una funzione potrebbe non restituire un valore, restituisce un Option. Se c'è un valore da restituire, lo racchiude in Some. Se non c'è alcun valore, restituisce None.

Questo rende esplicita nel sistema dei tipi la possibile assenza, impedendoti di usare accidentalmente un valore che non esiste.

Hai già visto Option in azione con il metodo .get() di una mappa hash: restituisce Some(&value) quando una chiave esiste, oppure None quando non esiste. Questo schema compare in tutto Rust e rende il tuo codice più sicuro e prevedibile.

Provalo tu

Questa lezione non include una sfida di codice.

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