Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Ejemmplo de clase en Rust trait e impl
- */
- #[warn(dead_code)]
- //#[derive(Debug)]
- trait Mascota {
- fn habla(&self) -> String;
- fn saluda(&self){
- println! ("Como te llamas ? {} .",self.habla());
- }
- }
- //Estructura Perro y sus campos
- struct Perro{
- nombre:String,
- edad:i8,
- }
- impl Mascota for Perro{
- fn habla(&self) ->String{
- format! ("Guau ! Me llamo {} y tengo {} anyos ",self.nombre,self.edad )
- }
- }
- fn main (){
- //Instancia un perro de nombre Bongo y edad 10 no hace falta New
- //Los campos se inicializan dentro de {} de la forma campo:valor
- let bongo = Perro {nombre: String::from ("Bongo") , edad: 10};
- /*Perro no implementa saluda directamente .
- * Rust busca en los traits implementados por Perro
- * Encuentra saluda()en el "trait" Mascota, que Perro implementa
- * ejecutando saluda() definida en dicho "trait"
- * saluda() llama a self.habla() para Perro !
- */
- bongo.saluda();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement