L'espressione 'if let'
Fa parte della sezione Logica e flusso del percorso Rust di Coddy. Lezione 4 di 66.
A volte devi solo verificare un modello specifico e non ti interessano tutte le altre possibilità. Scrivere un’espressione match completa con un solo ramo significativo e un _ che intercetta tutti gli altri casi può sembrare prolisso. Rust fornisce if let come alternativa più concisa in queste situazioni.
L’espressione if let ti permette di combinare il pattern matching con la logica condizionale in un’unica istruzione leggibile. Ecco la sintassi di base:
if let pattern = value {
// codice da eseguire se pattern corrisponde
}Ad esempio, invece di scrivere un match con un solo ramo utile:
let number = 5;
match number {
5 => println!("Found five!"),
_ => (), // non fare nulla per gli altri valori
}Puoi usare if let per renderlo più pulito:
let number = 5;
if let 5 = number {
println!("Found five!");
}L'espressione if let esegue il blocco di codice solo quando il pattern corrisponde. Se non corrisponde, non succede nulla: non è necessario un caso "else" esplicito, a meno che tu non ne voglia uno.
Sfida
FacileRiceverai un numero come input. Leggi l'input, convertilo in un intero e usa un'espressione if let per verificare se il numero è esattamente 42. Se corrisponde, stampa "The answer!". Se non corrisponde, non stampare nulla.
Requisiti:
- Usa un'espressione
if letper verificare se il numero è uguale a42 - Se il numero è
42, stampa"The answer!" - Se il numero è qualsiasi altro valore, non stampare nulla
Input: Un singolo intero
Output: Stampa "The answer!" se il numero è 42, altrimenti non stampare nulla
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("Please enter a valid number");
// TODO: Scrivi il tuo codice qui sotto
// Usa if let per verificare se number è uguale a 42
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Flusso di controllo avanzato
L'espressione 'match'Corrispondenza di più valoriCorrispondenza di intervalliL'espressione 'if let'Cicli come espressioniRipasso - Parser di comandi semplice4Raggruppare i dati con le struct
Che cos'è una struct?Panoramica sulle structAccedere ai campi delle structStruct mutabiliStruct come parametri di funzioneStruct tuplaRiepilogo - Creare una struct Book2Introduzione ai vettori
Che cos'è un vettore?Creare un vettoreAggiungere elementi con pushAccedere agli elementi di un vettoreIterare su un vettoreIterazione mutabileRimuovere elementiRiepilogo - Tracker dei punteggi di base5Coppie chiave-valore con mappe hash
Che cos'è una mappa hash?Creare una mappa hashInserire coppie chiave-valoreAccedere ai valoriScorrere una mappa hashAggiornare un valoreRimuovere una coppiaRiepilogo - Contatore di parole8Progetto: inventario semplice degli articoli
Configurazione del progettoAggiungere un articoloControllare le scorteVendere un articoloMettere tutto insieme3Lista di attività da riga di comando
Configurazione del progettoAggiungere un'attivitàVisualizzare tutte le attivitàRimuovere un'attivitàCodice finaleEsercitati da solo: Compilatore Rust online