Rust · Essencial · Inglês · Técnico
trait
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.