ExpertiDict

Rust · Essencial · Português · Técnico

abstração de custo zero

/abs.tɾa.ˈsɐ̃w̃ d͡ʒi ˈkus.tu ˈzɛ.ɾu/substantivo

Princípio de que recursos de alto nível, como iteradores e genéricos, compilam para código tão rápido quanto o equivalente escrito à mão. O que você não usa, não paga.

Onde usar

É argumento comum para escolher Rust em sistemas, citado em discussões sobre iteradores versus laços. Em review, serve para defender código mais legível sem medo de perder desempenho.

Em código

let v = vec![1, 2, 3, 4];
// iteradores e closures...
let s: i32 = v.iter().map(|x| x * 2).sum();
// ...compilam como um laço manual
let mut t = 0;
for x in &v {
  t += x * 2;
}

Exemplos

Iteradores são uma abstração de custo zero em Rust.

Não precisa trocar por um laço, é custo zero.

Cuidado

O custo zero é em tempo de execução: genéricos e macros podem aumentar o tempo de compilação e o tamanho do binário.

Sinônimos

zero-cost abstraction

Origem

Princípio herdado do C++, associado a Bjarne Stroustrup.

Veja também

Todos os termos de Rust