Advertisement
AntonioVillanueva

Tipo Self guarda espacio en Rust

Jan 15th, 2025
770
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rust 0.99 KB | None | 0 0
  1. /*
  2.  * Tipos de salida  , Tipos asociados guarda espacio trait
  3.  */
  4. #[warn(dead_code)]
  5.  
  6. //Estructuras tiplo tuple de un solo campo
  7. //El acceso es de tipo self.0
  8. #[derive(Debug)]
  9. struct Metros(i32);
  10.  
  11. #[derive(Debug)]
  12. struct MetrosCuadrados(i32);
  13.  
  14. trait Multiplica{
  15.     type Salida;
  16.     //self se refiere a la instancia actual del objeto o estructura
  17.     //Self se refiere al TIPO del objeto o estructura actual
  18.     fn multiplica (&self,otro:&Self) ->Self::Salida;
  19. }
  20.  
  21. //Implementa Multiplica para Metros
  22. impl Multiplica for Metros {
  23.     type Salida = MetrosCuadrados;
  24.     fn multiplica(&self,otro:&Self) ->Self::Salida{
  25.         //Acceso a tupla de un solo campo .0
  26.         //self es la estancia actual
  27.         MetrosCuadrados(self.0 * otro.0)
  28.     }
  29. }
  30.  
  31. fn main (){
  32.     //Primer calculo
  33.     println! ("{:?}",Metros(10).multiplica(&Metros(20)));
  34.    
  35.     //Segundo Calculo
  36.     let Calculo1 = Metros(2);
  37.     println! ("{:?}",Calculo1.multiplica(&Metros(3)));
  38.    
  39.     //Tercer calculo
  40.     println! ("{:?}",Calculo1.multiplica(&Calculo1));
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement