ExpertiDict

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

tipo associado

/ˈt͡ʃi.pu a.so.si.ˈa.du/substantivo

Tipo declarado dentro de um trait, como Item em Iterator, que cada implementação define. Evita um parâmetro genérico a mais e deixa as assinaturas mais curtas.

Onde usar

Aparece em Iterator::Item, Add::Output e Deref::Target. Cada tipo implementa o trait uma só vez, escolhendo o seu tipo associado.

Em código

trait Fonte {
  type Item;
  fn pega(&self) -> Self::Item;
}
impl Fonte for i32 {
  type Item = bool;
  fn pega(&self) -> bool { *self > 0 }
}

Exemplos

O Item do Iterator é um tipo associado.

Usei um tipo associado para não poluir a assinatura.

Cuidado

Não é o mesmo que um parâmetro genérico do trait: com tipo associado só existe uma implementação por tipo.

Sinônimos

associated type

Veja também

Todos os termos de Rust