Istruzione match
Fa parte della sezione Fondamenti del percorso Rust di Coddy. Lezione 26 di 75.
L'espressione match consente di confrontare un valore con una serie di pattern ed eseguire codice in base al pattern corrispondente.
Ecco la struttura di base di un'espressione match:
match variable {
pattern1 => expression1,
pattern2 => expression2,
// ... altri pattern
_ => default_expression,
}La parola chiave match è seguita dal valore che vuoi verificare.
Ogni ramo del match è composto da un pattern seguito da => e dal codice da eseguire.
Il trattino basso _ è il caso predefinito che corrisponde a tutto ciò che non corrisponde agli altri pattern.
Ecco un esempio:
let day = 3;
let day_name = match day {
1 => "Monday",
2 => "Tuesday",
3 => "Wednesday",
// ... altri pattern,
_ => "Invalid day",
};Per più righe di codice in un ramo, usa un blocco:
let day = 3;
let day_name = match day {
1 => {
println!("First day of the week!");
"Monday"
},
2 => "Tuesday",
// ... altri casi
_ => "Invalid day",
};Puoi corrispondere a più pattern usando |:
let day = 3;
let day_type = match day {
1 | 2 | 3 | 4 | 5 => "Weekday",
6 | 7 => "Weekend",
_ => "Invalid day",
};Le espressioni match in Rust devono essere esaustive, ovvero devono coprire tutti i valori possibili. Il compilatore lo verificherà per te.
Sfida
PrincipianteCrea un programma che accetti un numero di mese (1 per January, 2 per February, ecc.) e stampi la stagione a cui appartiene. Usa un'istruzione match per la logica.
Le stagioni e i mesi corrispondenti sono:
- Winter: dicembre (12), gennaio (1), febbraio (2)
- Spring: marzo (3), aprile (4), maggio (5)
- Summer: giugno (6), luglio (7), agosto (8)
- Autumn: settembre (9), ottobre (10), novembre (11)
Provalo tu
use std::io;
fn main() {
let mut input = String::new();
io::stdin().read_line(&mut input).unwrap();
let month: i32 = input.trim().parse().unwrap();
// Scrivi il tuo codice qui sotto
let season =
// Non modificare la riga qui sotto
println!("status = {}", season);
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori Parte 1
Operatori aritmeticiOperatore moduloAbbreviazioni aritmeticheOperatori di confrontoConfronto tra stringhe7Input/output di base
Stampare sulla consoleLeggere l'input dell'utenteRiepilogo - Fino a 120Riepilogo - Vero o falso5Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Ripasso - Logica sempliceOperatori logici Parte 311Funzioni
Dichiarare le funzioniParametri e argomentiValori restituitiValori restituiti multipliRiepilogo - funzione SigmaRiepilogo - funzione di validazione14Iterare sugli array
Guida ai rangeCiclo for avanzatoPrestito nel cicloOperazioni comuni sugli array3Variabili Parte 2
Dichiarazione del tipoConvenzioni di denominazioneInferenza del tipoRipasso - Inizializzare le variabiliConversione di tipo9Cicli
Ciclo for su sequenzeCiclo whileBreakContinueCiclo annidatoEtichette dei cicliCiclo infinitoRiepilogo - Input dinamico12Fondamenti degli array
Dichiarare gli arrayArray come parametroAccedere agli elementiModificare gli arrayRiepilogo - Stampare un array in modo leggibile15Operazioni sulle stringhe
Metodi delle stringheMacro format!Conversione delle stringheRipasso - FormattazioneEsercitati da solo: Compilatore Rust online