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.
- 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
- 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 blocoimpl
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 deself
modificando o cĂłdigo e tentando executardizer_ola
duas vezes.
- Mostre que Ă© um termo abreviado para
- Descreveremos a distinção entre os receptores de método a seguir.