Menu
Coddy logo textTech

Definir un Closure simple

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

Ahora que entiendes qué son los closures, aprendamos cómo definirlos y usarlos en tu código. La forma más sencilla de crear un closure es asignarlo a una variable, lo que te permite llamarlo más tarde.

Aquí tienes cómo definir un closure básico que no toma parámetros:

let my_closure = || {
    println!("Hello from the closure!");
};

Observa las barras verticales vacías ||; esto indica que el closure no toma argumentos. Las llaves contienen el código que se ejecuta cuando llamas al closure.

Para llamar a tu clausura, la usas igual que una función añadiendo paréntesis después del nombre de la variable:

let my_closure = || {
    println!("Hello from the closure!");
};

my_closure(); // Esto llama a la clausura e imprime el mensaje
challenge icon

Desafío

Fácil

Recibirás una única entrada que contiene un mensaje. Crea un closure que no reciba parámetros e imprima este mensaje. Almacena el closure en una variable y luego llámalo para mostrar el mensaje.

Requisitos:

  • Lee el mensaje de entrada y elimina los espacios en blanco (trim)
  • Crea un closure utilizando la sintaxis || que imprima el mensaje
  • Almacena el closure en una variable
  • Llama al closure para ejecutarlo

Entrada:

  • Una sola línea que contiene un mensaje (por ejemplo, Welcome to Rust!)

Salida:

  • El mensaje impreso por el closure

Hoja de referencia

Un closure se define usando barras verticales || y puede almacenarse en una variable:

let my_closure = || {
    println!("Hello from the closure!");
};

Para llamar a un closure, usa paréntesis después del nombre de la variable:

my_closure(); // Ejecuta el closure

Pruébalo tú mismo

use std::io;

fn main() {
    // Leer la entrada
    let mut message = String::new();
    io::stdin().read_line(&mut message).expect("Failed to read line");
    let message = message.trim();
    
    // TODO: Crear un cierre que imprima el mensaje y guardarlo en una variable
    
    
    // TODO: Llamar al cierre para imprimir el mensaje
    
}
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