我有各种结构都实现相同的特征。我想在某种条件下分支,在运行时确定要实例化哪些结构。然后,无论我跟随哪个分支,我都希望从该特征调用方法。
在Rust中这可能吗?我希望实现类似以下的内容(无法编译):
trait Barks {
fn bark(&self);
}
struct Dog;
impl Barks for Dog {
fn bark(&self) {
println!("Yip.");
}
}
struct Wolf;
impl Barks for Wolf {
fn bark(&self) {
println!("WOOF!");
}
}
fn main() {
let animal: Barks;
if 1 == 2 {
animal = Dog;
} else {
animal = Wolf;
}
animal.bark();
}
海绵宝宝撒
拉风的咖菲猫