Advertisement
AntonioVillanueva

Ejemplo Clase en Rust trait e impl

Jan 15th, 2025
31
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rust 0.93 KB | None | 0 0
  1. /*
  2.  * Ejemmplo de clase en Rust trait e impl
  3.  */
  4. #[warn(dead_code)]
  5. //#[derive(Debug)]
  6.  
  7. trait Mascota {
  8.     fn habla(&self) -> String;
  9.     fn saluda(&self){
  10.         println! ("Como te llamas ? {} .",self.habla());
  11.     }
  12.    
  13. }
  14.  
  15. //Estructura Perro y sus campos
  16. struct Perro{
  17.     nombre:String,
  18.     edad:i8,
  19. }
  20.  
  21. impl Mascota for Perro{
  22.     fn habla(&self) ->String{
  23.         format! ("Guau ! Me llamo {} y tengo {} anyos ",self.nombre,self.edad )
  24.     }
  25. }
  26.  
  27. fn main (){
  28.     //Instancia un perro de nombre Bongo y edad 10 no hace falta New
  29.     //Los campos se inicializan dentro de {} de la forma campo:valor
  30.     let bongo = Perro {nombre: String::from ("Bongo") , edad: 10};
  31.    
  32.     /*Perro no implementa saluda directamente  .
  33.      * Rust busca en los traits implementados por Perro
  34.      * Encuentra saluda()en el "trait" Mascota, que Perro implementa
  35.      * ejecutando saluda() definida en dicho "trait"
  36.      * saluda() llama a self.habla() para Perro !
  37.      */
  38.    
  39.     bongo.saluda();
  40. }
  41.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement