Menu
Coddy logo textTech

La expresión 'if let'

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

A veces solo necesitas verificar un patrón específico y no te importan todas las demás posibilidades. Escribir una expresión match completa con solo un brazo significativo y un _ que lo capture todo puede resultar verboso. Rust proporciona if let como una alternativa más concisa para estas situaciones.

La expresión if let te permite combinar la coincidencia de patrones con lógica condicional en una sola sentencia legible. Aquí tienes la sintaxis básica:

if let pattern = value {
    // código a ejecutar si el patrón coincide
}

Por ejemplo, en lugar de escribir un match con un solo brazo útil:

let number = 5;

match number {
    5 => println!("Found five!"),
    _ => (), // no hacer nada para otros valores
}

Puedes usar if let para hacerlo más limpio:

let number = 5;

if let 5 = number {
    println!("Found five!");
}

La expresión if let solo ejecuta el bloque de código cuando el patrón coincide. Si no coincide, no ocurre nada; no es necesaria una cláusula "else" explícita a menos que se desee una.

challenge icon

Desafío

Fácil

Recibirás un número como entrada. Lee la entrada, conviértela en un entero y usa una expresión if let para verificar si el número es exactamente 42. Si coincide, imprime "The answer!". Si no coincide, no imprimas nada.

Requisitos:

  • Usa una expresión if let para verificar si el número es igual a 42
  • Si el número es 42, imprime "The answer!"
  • Si el número es cualquier otra cosa, no imprimas nada

Entrada: Un solo número entero

Salida: Imprime "The answer!" si el número es 42, de lo contrario no imprimas nada

Hoja de referencia

La expresión if let proporciona una forma concisa de coincidir con un único patrón sin escribir una sentencia match completa.

Sintaxis básica:

if let pattern = value {
    // código a ejecutar si el patrón coincide
}

Ejemplo comparando match e if let:

// Usando match
let number = 5;
match number {
    5 => println!("Found five!"),
    _ => (), // no hacer nada para otros valores
}

// Usando if let (más conciso)
let number = 5;
if let 5 = number {
    println!("Found five!");
}

La expresión if let solo se ejecuta cuando el patrón coincide. Si no coincide, no ocurre nada a menos que añadas una cláusula else explícita.

Pruébalo tú mismo

use std::io;

fn main() {
    // Leer entrada
    let mut input = String::new();
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let number: i32 = input.trim().parse().expect("Please enter a valid number");
    
    // TODO: Escribe tu código a continuación
    // Usa if let para verificar si el número es igual a 42
    
}
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