ExpertiDict

Rust · Essencial · Inglês · Técnico

trait

/treɪt/substantivo

Conjunto de métodos que um tipo se compromete a oferecer. É o mecanismo de abstração do Rust, parecido com interfaces, mas que também permite implementações padrão.

Onde usar

Aparece ao definir comportamento comum, em bounds genéricos e em erros como 'the trait bound is not satisfied'. Boa parte da biblioteca padrão é feita de traits.

Em código

trait Falar {
  fn falar(&self) -> String;
}
struct Cao;
impl Falar for Cao {
  fn falar(&self) -> String { "au".into() }
}

Exemplos

Does this type implement the trait?

Esse tipo implementa o trait?

Add a default body to the trait method.

Adicione um corpo padrão ao método do trait.

Cuidado

Não é uma classe base: um trait não guarda dados nem forma hierarquia de herança.

Sinônimos

interface, característica

Origem

Do inglês trait, 'traço, característica', do latim tractus.

Veja também

Todos os termos de Rust