トレイト
Trait
他の言語のインターフェースと同等の機能が Rust ではトレイトと呼ばれている。
型に対する特徴を定義する。
インターフェース自体はまた別にある。
オブジェクト指向におけるポリモーフィズムをトレイトで実現している。
Rust のトレイトには以下の特徴がある。
メソッドの定義のみで実装を持たない。
すべてのメソッドは、トレイト自身の公開範囲と同一の公開範囲となる。
Rust のトレイトは、プログラミング言語で取り扱われる本当のトレイトとは異なるという指摘がある。
トレイトの宣言は多くのオブジェクト指向型言語のクラス宣言に近い
code:trait.rs
trait トレイト名 {
fn メソッド名(引数) -> 返り値の型; // メソッドの宣言のみで実装がない
}
構造体にトレイトを適用する場合、以下のようにする。
code:impl.rs
impl トレイト名 for 構造体名 {
fn メソッド名(引数) -> 返り値の型 {
// 実装
}
}
公式の説明
https://doc.rust-jp.rs/book-ja/ch10-02-traits.html