Bloques

En Rust, un bloque contiene una secuencia de expresiones. Cada bloque tiene un tipo y un valor, que son los de la última expresión del bloque:

fn main() {
    let x = {
        let y = 10;
        println!("y: {y}");
        let z = {
            let w = {
                3 + 4
            };
            println!("w: {w}");
            y * w
        };
        println!("z: {z}");
        z - y
    };
    println!("x: {x}");
}

Si la última expresión termina con ;, el tipo y el valor resultante será ().

Se utiliza la misma regla para las funciones: el valor del cuerpo de la función es el valor devuelto:

fn double(x: i32) -> i32 {
    x + x
}

fn main() {
    println!("doubled: {}", double(7));
}

Puntos Clave:

  • El objetivo de esta diapositiva es mostrar que los bloques tienen un tipo y un valor en Rust.
  • Puedes mostrar cómo cambia el valor del bloque cambiando su última línea. Por ejemplo, añade o quita un punto y coma, o utiliza la expresión return.