Rust 支持多态的特性。Trait 允许我们将一组方法与结构类型关联起来。
我们首先在 Trait 里面定义函数签名:
trait MyTrait {
fn foo(&self);
...
}
当一个结构体实现一个 trait 时,它便建立了一个契约,允许我们通过 trait 类型与结构体进行间接交互(例如 &dyn MyTrait
),而不必知道其真实的类型。
结构体实现 Trait 方法是在实现块中定义要实现的方法:
impl MyTrait for MyStruct {
fn foo(&self) {
...
}
...
}