Menu
Coddy logo textTech

La expresión 'match'

Parte de la sección Logic & Flow del Journey de Rust de Coddy — lección 1 de 66.

La expresión match es la potente herramienta de coincidencia de patrones de Rust que te permite comparar un valor con diferentes patrones y ejecutar código basado en qué patrón coincide. Piénsalo como una versión más avanzada de las sentencias if que puede manejar múltiples condiciones de manera elegante.

Aquí tienes la sintaxis básica de una expresión match:

match value {
    pattern1 => code_to_run,
    pattern2 => code_to_run,
    _ => default_code,
}

Cada línea dentro del match se llama un "brazo" (arm). El => separa el patrón del código que se ejecuta cuando ese patrón coincide. El guion bajo _ es un patrón comodín especial que coincide con cualquier cosa; es como un "comodín" (catch-all) para cualquier valor que no coincida con los otros patrones.

Aquí tienes un ejemplo sencillo que verifica un número:

let number = 2;

match number {
    1 => println!("One"),
    2 => println!("Two"),
    _ => println!("Other"),
}

En Rust, las expresiones match deben ser exhaustivas, lo que significa que deben manejar cada valor posible. Es por eso que el comodín _ es tan importante: garantiza que hayas cubierto todos los casos que no se emparejaron explícitamente.

challenge icon

Desafío

Fácil

Escribe una función describe_number que reciba num y devuelva una descripción en cadena basada en el valor del número.

Usa una expresión match para devolver diferentes descripciones para diferentes números.

Condiciones:

  • Si num es 0, devuelve "zero"
  • Si num es 1, devuelve "one"
  • Si num es 2, devuelve "two"
  • Si num es 3, devuelve "three"
  • Para cualquier otro número, devuelve "many"

Parámetros:

  • num (i32): El número a describir

Devuelve: Una descripción en cadena del número (String)

Hoja de referencia

La expresión match compara un valor con diferentes patrones y ejecuta código basado en qué patrón coincide:

match value {
    pattern1 => code_to_run,
    pattern2 => code_to_run,
    _ => default_code,
}

Cada línea dentro del match se llama un "brazo" (arm). El => separa el patrón del código que se ejecuta cuando ese patrón coincide.

Ejemplo:

let number = 2;

match number {
    1 => println!("One"),
    2 => println!("Two"),
    _ => println!("Other"),
}

El guion bajo _ es un patrón comodín que coincide con cualquier cosa no cubierta por otros patrones. Las expresiones match deben ser exhaustivas: deben manejar cada valor posible.

Pruébalo tú mismo

fn describe_number(num: i32) -> String {
    // Escribe el código aquí
}
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 Logic & Flow