Métodos

Rust te permite asociar funciones a los nuevos tipos. Para ello, usa un bloque impl:

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

impl Person {
    fn say_hello(&self) {
        println!("Hello, my name is {}", self.name);
    }
}

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

Puntos Clave:

  • Puede resultar útil presentar los métodos comparándolos con funciones.
    • Se llama a los métodos en una instancia de un tipo (como un estructura o una enumeración) y el primer parámetro representa la instancia como self.
    • Los desarrolladores pueden optar por utilizar métodos para aprovechar la sintaxis de los receptores de métodos y para ayudar a mantenerlos más organizados. Mediante el uso de métodos podemos mantener todo el código de implementación en un lugar predecible.
  • Señala el uso de la palabra clave self, receptor de un método.
    • Indica que se trata de un término abreviado de self:&Self y muestra cómo se podría utilizar también el nombre de la estructura.
    • Explica que Self es un tipo de alias para el tipo en el que está el bloque impl y que se puede usar en cualquier parte del bloque.
    • Ten en cuenta que se puede usar self como otras estructuras y que la notación de puntos puede utilizarse para referirse a campos concretos.
    • Puede ser un buen momento para mostrar la diferencia entre &self y self modificando el código e intentando ejecutar say_hello dos veces.
  • A continuación, se describe la diferencia entre receptores de métodos.