ExpertiDict

Rust · Intermediário · Português · Técnico

adaptador de iterador

/a.da.pta.ˈdoʁ d͡ʒi i.te.ɾa.ˈdoʁ/substantivo

Método que recebe um iterador e devolve outro, como map, filter, take e zip. É preguiçoso: nada é calculado até um consumidor, como collect, sum ou for, puxar os itens.

Onde usar

Cadeias de adaptadores substituem laços com variáveis auxiliares e compilam para código tão rápido quanto o laço manual. Esquecer o consumidor gera o aviso 'unused must_use'.

Em código

let v = vec![1, 2, 3, 4, 5];
let r: Vec<i32> = v
  .iter()
  .filter(|x| **x % 2 == 1)
  .map(|x| x * 10)
  .collect();
println!("{:?}", r);

Exemplos

Troquei o laço por uma cadeia de adaptadores de iterador.

O map é um adaptador, só roda quando alguém consome.

Cuidado

Montar a cadeia não executa nada: quem espera efeito colateral sem consumir vê o programa não fazer nada.

Sinônimos

iterator adapter

Antônimos

consumidor

Veja também

Todos os termos de Rust