Métodos

Los métodos son similares a las funciones: se declaran con la palabra clave fn y su nombre; pueden tener parámetros y un valor de retorno, y contienen código que se ejecuta cuando se invoca. Sin embargo, los métodos son diferentes de las funciones en que se definen dentro del contexto de una estructura (o una enumeración o un objeto de rasgo), y su primer parámetro es siempre self, que representa la instancia de la estructura en la que se está llamando al método.


#![allow(unused)]
fn main() {
struct Rectangulo {
    alto: u32,
    ancho: u32,
}

impl Rectangulo {
    fn area(&self) -> u32 {
        self.alto * self.ancho
    }
    
    fn puede_contener(&self, otro: &Rectangulo) -> bool {
        self.alto > otro.alto && self.ancho > otro.ancho
    }
}
}

#![allow(unused)]
fn main() {
struct Rectangulo {
   alto: u32,
   ancho: u32,
}

impl Rectangulo {
   fn area(&self) -> u32 {
       self.alto * self.ancho
   }
   
   fn puede_contener(&self, otro: &Rectangulo) -> bool {
       self.alto > otro.alto && self.ancho > otro.ancho
   }
}
let rectangulo_uno = Rectangulo {
    alto: 50,
    ancho: 35,
};
println!("Area del rentangulo: {}", rectangulo_uno.area());

let rectangulo_dos = Rectangulo {
    alto: 60,
    ancho: 40,
};
println!("Puede 2 contener a 1: {}", rectangulo_dos.puede_contener(&rectangulo_uno));
println!("Puede 1 contener a 2: {}", rectangulo_uno.puede_contener(&rectangulo_dos));
}