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 la presenza di uno schema specifico e non ti interessano tutte le altre possibilità. Scrivere un'espressione match completa con un solo braccio significativo e un _ che corrisponde a tutto può risultare prolisso. Rust offre if let come alternativa più concisa per 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
}Per esempio, invece di scrivere un match con un solo braccio 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 modello corrisponde. Se non corrisponde, non succede nulla: non è necessario un caso «else» esplicito, a meno che tu non lo voglia.
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'I cicli come espressioniRiepilogo - Parser di comandi semplice4Raggruppare i dati con le struct
Che cos'è una struct?Panoramica sulle structAccedere ai campi di una structStruct mutabiliLe struct come parametri di funzioneStruct tuplaRiepilogo - Crea una struct Book2Introduzione ai vettori
Che cos'è un vettore?Creare un vettoreAggiungere elementi con pushAccedere agli elementi di un vettoreScorrere un vettoreIterazione mutabileRimuovere elementiRiepilogo - Tracker di punteggi di base5Coppie chiave-valore con le mappe hash
Che cos'è una mappa hash?Creare una mappa hashInserire coppie chiave-valoreAccedere ai valoriIterare su una mappa hashAggiornare un valoreRimuovere una coppiaRiepilogo - Contatore di parole8Progetto: semplice inventario di articoli
Impostazione del progettoAggiungere un articoloControllare le scorteVendere un articoloMettere insieme il tutto3Lista di cose da fare da riga di comando
Impostazione del progettoAggiungere un'attivitàVisualizzare tutte le attivitàRimuovere un'attivitàCodice finaleEsercitati da solo: Compilatore Rust online