Rustは、トレイトによるポリモーフィズムをサポートしています。トレイトを使うと、構造体型にメソッド群を関連付けることができます。
まず、トレイト内のメソッドのシグネチャを定義します。
trait MyTrait {
fn foo(&self);
...
}
構造体がトレイトを実装すると、実際の型を知らなくてもトレイトの型(例:&dyn MyTrait
)を通じて間接的に構造体と対話できる契約が確立されます。
構造体に実装されたトレイトメソッドは、実装ブロックの中で定義されます。
impl MyTrait for MyStruct {
fn foo(&self) {
...
}
...
}