相关疑难解决方法(0)

属于特征的对象传染媒介

请考虑以下代码:

trait Animal {
    fn make_sound(&self) -> String;
}

struct Cat;
impl Animal for Cat {
    fn make_sound(&self) -> String {
        "meow".to_string()
    }
}

struct Dog;
impl Animal for Dog {
    fn make_sound(&self) -> String {
        "woof".to_string()
    }
}

fn main () {
    let dog: Dog = Dog;
    let cat: Cat = Cat;
    let v: Vec<Animal> = Vec::new();
    v.push(cat);
    v.push(dog);
    for animal in v.iter() {
        println!("{}", animal.make_sound());
    }
}
Run Code Online (Sandbox Code Playgroud)

编译器告诉我这vAnimal我尝试推送时的向量cat(类型不匹配)

那么,我如何制作属于特征的对象向量并在每个元素上调用相应的特征方法呢?

polymorphism rust

52
推荐指数
3
解决办法
1万
查看次数

标签 统计

polymorphism ×1

rust ×1