Menu
Coddy logo textTech

Sentencia Match

Parte de la sección Fundamentos del Journey de Rust de Coddy. Lección 26 de 75.

La expresión match te permite comparar un valor con una serie de patrones y ejecutar código según el patrón que coincida.

Esta es la estructura básica de una expresión match:

match variable {
	pattern1 => expression1,
	pattern2 => expression2,
	// ... más patrones
	_ => default_expression,
}

La palabra clave match va seguida del valor que quieres probar.

Cada rama de => consta de un patrón seguido de => y del código que se ejecutará.

El guion bajo _ es el caso no predeterminado que coincide con cualquier elemento que no coincida con otros patrones.

Aquí tienes un ejemplo:

let day = 3;
let day_name = match day {
	1 => "Monday",
	2 => "Tuesday",
	3 => "Wednesday",
	// ... más patrones,
	_ => "Invalid day",
};

Para varias líneas de código en un brazo, usa un bloque:

let day = 3;
let day_name = match day {
	1 => {
		println!("First day of the week!");
		"Monday"
	},
	2 => "Tuesday",
	// ... otros casos
	_ => "Invalid day",
};

Puedes hacer coincidir múltiples patrones usando |:

let day = 3;
let day_type = match day {
	1 | 2 | 3 | 4 | 5 => "Weekday",
	6 | 7 => "Weekend",
	_ => "Invalid day",
};

Las expresiones match en Rust deben ser exhaustivas, lo que significa que deben abarcar todos los valores posibles. El compilador lo comprobará por ti.

challenge icon

Desafío

Principiante

Crea un programa que reciba un número de mes (1 para enero, 2 para febrero, etc.) e imprima la estación a la que pertenece. Usa una instrucción match para la lógica.

Las estaciones y sus meses correspondientes son:

  • Invierno: diciembre (12), enero (1), febrero (2)
  • Primavera: marzo (3), abril (4), mayo (5)
  • Verano: junio (6), julio (7), agosto (8)
  • Otoño: septiembre (9), octubre (10), noviembre (11)

Pruébalo tú mismo

use std::io;

fn main() {
    let mut input = String::new();
    io::stdin().read_line(&mut input).unwrap();
    let month: i32 = input.trim().parse().unwrap();
    // Escribe tu código debajo
    let season = 

    // No cambies la línea de abajo
    println!("status = {}", season);
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Compilador de Rust online