Blocos

Um bloco em Rust contĂȘm uma sequĂȘncia de expressĂ”es. Cada bloco tem um valor e um tipo, os quais sĂŁo os da Ășltima expressĂŁo do bloco:

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}");
}

Se a Ășltima expressĂŁo terminar com ;, o valor resultante e o tipo serĂĄ ().

A mesma regra é usada para funçÔes: o valor do corpo da função é o valor de retorno:

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

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

Pontos Chave:

  • O objetivo deste slide Ă© mostrar que os blocos tĂȘm um tipo e um valor em Rust.
  • VocĂȘ pode mostrar como o valor do bloco muda alterando a Ășltima linha do bloco. Por exemplo, adicionar/remover um ponto e vĂ­rgula (;) ou usar um return.