Dev Study
Rust コース

57. 関連型 — トレイトに型を持たせる

トレイト定義の中に type Item; のように書くものを「関連型」と呼びます。実装側が type Item = String; と具体的な型をひとつ決めると、トレイトのメソッドはその型を Self::Item として参照できます。

ジェネリクス(trait Container<T>)と似ていますが、関連型は「ひとつの型につき実装は1通り、型もそこで1通りに決まる」という関係を表現できます。標準ライブラリの Iterator が type Item を持つのが代表例で、「このイテレータが返すのは必ずこの型」と一意に決まります。

同じ型に複数の型パラメータで何度も実装したいならジェネリクス、実装ごとに型が1通りに決まるなら関連型、というのが使い分けの目安です。

▶ サンプルコードを実行してみよう(自由に書き換えてOK)

Rust
サンプルコードで身につける(5本) →

学んだ概念を、素朴な例から実務寄りの例まで5つの具体例で確認します。

公式ドキュメントで詳しく ↗