ExpertiDict

Rust · Essencial · Inglês · Técnico

closure

/ˈkloʊʒɚ/substantivo

Função anônima que pode capturar variáveis do escopo em que foi criada. Escreve-se com barras verticais, como |x| x + 1, e o compilador infere os tipos.

Onde usar

Aparece em map, filter, sort_by e thread::spawn. A forma de captura, por referência ou por move, decide se ela é Fn, FnMut ou FnOnce.

Em código

let fator = 3;
let triplo = |x: i32| x * fator;
println!("{}", triplo(5));
let v: Vec<_> = (1..4).map(triplo).collect();
println!("{:?}", v);

Exemplos

Pass a closure to sort_by.

Passe uma closure para o sort_by.

This closure captures the config by reference.

Essa closure captura a configuração por referência.

Cuidado

Não é um ponteiro de função: closure que captura estado tem tipo próprio e anônimo, e só as que não capturam nada convertem para fn.

Sinônimos

função anônima, lambda

Origem

Do inglês closure, 'fechamento': a função fecha sobre as variáveis que captura.

Veja também

Todos os termos de Rust