Rust · Intermediário · Português · Técnico
adaptador de iterador
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