Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Tipos de salida , Tipos asociados guarda espacio trait
- */
- #[warn(dead_code)]
- //Estructuras tiplo tuple de un solo campo
- //El acceso es de tipo self.0
- #[derive(Debug)]
- struct Metros(i32);
- #[derive(Debug)]
- struct MetrosCuadrados(i32);
- trait Multiplica{
- type Salida;
- //self se refiere a la instancia actual del objeto o estructura
- //Self se refiere al TIPO del objeto o estructura actual
- fn multiplica (&self,otro:&Self) ->Self::Salida;
- }
- //Implementa Multiplica para Metros
- impl Multiplica for Metros {
- type Salida = MetrosCuadrados;
- fn multiplica(&self,otro:&Self) ->Self::Salida{
- //Acceso a tupla de un solo campo .0
- //self es la estancia actual
- MetrosCuadrados(self.0 * otro.0)
- }
- }
- fn main (){
- //Primer calculo
- println! ("{:?}",Metros(10).multiplica(&Metros(20)));
- //Segundo Calculo
- let Calculo1 = Metros(2);
- println! ("{:?}",Calculo1.multiplica(&Metros(3)));
- //Tercer calculo
- println! ("{:?}",Calculo1.multiplica(&Calculo1));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement