MĂ©todos

Rust permite que vocĂȘ associe funçÔes aos seus novos tipos. VocĂȘ faz isso com um bloco impl:

#[derive(Debug)]
struct Person {
    name: String,
    age: u8,
}

impl Person {
    fn say_hello(&self) {
        println!("OlĂĄ, meu nome Ă© {}", self.name);
    }
}

fn main() {
    let peter = Person {
        name: String::from("Pedro"),
        age: 27,
    };
    peter.say_hello();
}

Pontos Chave:

  • Pode ser Ăștil introduzir mĂ©todos comparando-os com funçÔes.
    • MĂ©todos sĂŁo chamados em uma instĂąncia de um tipo (como struct ou enum), o primeiro parĂąmetro representa a instĂąncia como self.
    • Os desenvolvedores podem optar por usar mĂ©todos para aproveitar a sintaxe do receptor do mĂ©todo e ajudar a mantĂȘ-los mais organizados. Usando mĂ©todos, podemos manter todo o cĂłdigo de implementação em um local previsĂ­vel.
  • Destaque o uso da palavra-chave self, um receptor de mĂ©todo.
    • Mostre que Ă© um termo abreviado para self:Self e talvez mostre como o nome da struct tambĂ©m poderia ser usado.
    • Explique que Self Ă© um apelido de tipo para o tipo em que o bloco impl estĂĄ e pode ser usado em qualquer outro lugar no bloco.
    • Observe como self Ă© usado como outras Structs e a notação de ponto pode ser usada para se referir a campos individuais.
    • Este pode ser um bom momento para demonstrar como &self difere de self modificando o cĂłdigo e tentando executar dizer_ola duas vezes.
  • Descreveremos a distinção entre os receptores de mĂ©todo a seguir.