Menu
Coddy logo textTech

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.

challenge icon

Sfida

Principiante

Crea 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);
}
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 Fondamenti

Esercitati da solo: Compilatore Rust online