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);
}