Trait
トレイトは共有される振る舞いのメソッド群を定義し、型がそれを実装してメソッドを提供する。Rust や Scala のインターフェースと抽象化の仕組みである。
目的
共有振る舞いのインターフェースを定義し、継承よりも合成をサポートする。
メカニズム
トレイトはメソッドシグネチャ(デフォルト実装付きの場合もある)を宣言する。型は impl Trait でメソッド本体を提供する。トレイト境界はジェネリック型を制約し、トレイトオブジェクト(dyn Trait)は動的ディスパッチを可能にし、スーパートレイトは継承を提供する。
ユースケース
- Rust プログラミング
- インターフェースの抽象化
- ジェネリックの制約