编辑代码

pub trait Animal{
    fn noise(&self);
}

pub struct dog
{
    name: String,
}
struct cat
{
    name: String,
}

impl Animal for dog{
    fn noise(&self){
        println!("{} noise is wang!", &self.name)
    }
}

impl Animal for cat{
    fn noise(&self){
        println!("{} noise is miao!", &self.name)
    }
}

fn sound(item: impl Animal)
{
    item.noise();
}

fn main(){
    let a = "1011".to_string();
    println!("{:?}", a.as_bytes());
    let dog1 = dog{name: String::from("dog"),};
    let cat1 = cat{name: String::from("cat"),};
    sound(dog1);
    sound(cat1);
    
}