Rust · Essencial · Inglês · Técnico
self
Palavra-chave que representa a instância em métodos: self toma a posse, &self empresta para leitura e &mut self empresta para alteração. Self, com maiúscula, é o próprio tipo.
Onde usar
Aparece como primeiro parâmetro dos métodos. A escolha entre self, &self e &mut self mostra se o método consome, lê ou altera o valor.
Em código
struct Contador { n: u32 }
impl Contador {
fn novo() -> Self { Self { n: 0 } }
fn inc(&mut self) { self.n += 1; }
fn le(&self) -> u32 { self.n }
fn fim(self) -> u32 { self.n }
}Exemplos
This method takes self, so it consumes the value.
Esse método recebe self, então consome o valor.
Should it be &self or &mut self?
Deveria ser &self ou &mut self?
Cuidado
Self com maiúscula é o tipo, e self com minúscula é o valor: confundir as duas gera erros de tipo.