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.
Desafío
PrincipianteCrea 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);
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores Parte 1
Operadores aritméticosOperador de móduloAtajos aritméticosOperadores de comparaciónComparación de strings5Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Repaso - Lógica simpleOperadores lógicos Parte 33Variables Parte 2
Declaración de tiposConvenciones de nomenclaturaInferencia de tiposResumen - Inicializar variablesConversión de tipos9Bucles
For sobre seriesBucle WhileBreakContinueBucle anidadoEtiquetas de bucleBucle infinitoResumen - Entrada dinámicaPractica por tu cuenta: Compilador de Rust online