ExpertiDict

Rust · Essencial · Português · Técnico

genéricos

/ʒe.ˈne.ɾi.kus/substantivo

Recurso para escrever funções, structs e enums que funcionam com vários tipos, declarados entre colchetes angulares. O compilador gera código específico para cada tipo usado.

Onde usar

Aparece como <T> em Vec<T>, Option<T> e em funções reutilizáveis, quase sempre com bounds de trait. Sem bounds, quase nada se pode fazer com um T.

Em código

fn maior<T: PartialOrd>(a: T, b: T) -> T {
  if a > b { a } else { b }
}
println!("{}", maior(3, 7));
println!("{}", maior("a", "b"));

Exemplos

Usei genéricos para a função aceitar qualquer número.

Sem bound de trait, o genérico não sabe comparar.

Cuidado

Não é tipagem dinâmica nem dyn: os genéricos são resolvidos na compilação, sem custo em execução.

Sinônimos

generics

Veja também

Todos os termos de Rust