Menu
CoddyTech

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 che corrisponde.

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 testare.

Ogni ramo della corrispondenza consiste in un pattern seguito da => e dal codice da eseguire.

Il trattino basso _ è il caso predefinito che corrisponde a qualsiasi cosa non corrisponda 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 confrontare 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 riceva 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": December (12), January (1), February (2)
  • "Spring": March (3), April (4), May (5)
  • "Summer": June (6), July (7), August (8)
  • "Autumn": September (9), October (10), November (11)

Assegna queste esatte stringhe inglesi a season, così il programma stampa, per esempio, status = Spring.

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