ExpertiDict

Rust · Essencial · Inglês · Técnico

self

/sɛlf/palavra-chave

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.

Veja também

Todos os termos de Rust