Iniciante Fundamentos

Funções

Funções organizam o código em blocos reutilizáveis. Em Rust elas começam com fn e exigem tipos nos parâmetros.

Parâmetros tipados

Cada parâmetro precisa de tipo explícito.

fn saudar(nome: &str) {
    println!("Olá, {}!", nome);
}

fn main() {
    saudar("Ana");
}

Retorno com ->

O tipo de retorno vem após ->. A última expressão (sem ;) é o valor retornado.

fn somar(a: i32, b: i32) -> i32 {
    a + b // sem ponto e vírgula = valor de retorno
}

fn main() {
    let total = somar(3, 4);
    println!("{}", total); // 7
}

return explícito

Você também pode usar return, útil para sair cedo:

fn dobro(n: i32) -> i32 {
    if n == 0 {
        return 0;
    }
    n * 2
}

fn main() {
    println!("{}", dobro(5)); // 10
}

Expressão x instrução

Atenção: colocar ; na última linha transforma a expressão em instrução e ela deixa de retornar valor.

fn quadrado(x: i32) -> i32 {
    x * x // correto: sem ;
}

fn main() {
    println!("{}", quadrado(4)); // 16
}