Rust ツアー 目次

トレイトを用いたポリモーフィズム

Rustは、トレイトによるポリモーフィズムをサポートしています。トレイトを使うと、構造体型にメソッド群を関連付けることができます。

まず、トレイト内のメソッドのシグネチャを定義します。

trait MyTrait {
    fn foo(&self);
    ...
}

構造体がトレイトを実装すると、実際の型を知らなくてもトレイトの型(例:&dyn MyTrait)を通じて間接的に構造体と対話できる契約が確立されます。

構造体に実装されたトレイトメソッドは、実装ブロックの中で定義されます。

impl MyTrait for MyStruct { 
    fn foo(&self) {
        ...
    }
    ... 
}