広告スペース(バナー)
レッスン 17 / 20

ジェネリクス

このレッスンでは、いろいろな型に対応できる関数を作れるジェネリクスの使い方を学びます。「Rust ジェネリクス 使い方」で調べている方向けです。

ジェネリクスは<T>という記号で「型を後から決められる型変数」を宣言する仕組みです。同じロジックを異なる型に対して使い回せます。

サンプルコードでは、fn largest<T: PartialOrd + Copy>(list: &[T]) -> Tという関数を定義し、数値のスライスから最大値を求めています。PartialOrdは「大小比較できる」という制約(トレイト境界)です。

初心者がよくつまずくのが、この「トレイト境界」の指定です。ジェネリックな型Tに対してどんな操作(比較・コピーなど)を行いたいかによって、必要なトレイトを制約として明示する必要があります。

実際の開発現場では、標準ライブラリのVecやOptionなど、Rustの多くの型やメソッドがジェネリクスを使って実装されています。

📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください

🧪 このサイトではRustを直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。

🎯
ここまでできればゴール達成!
数値のリストから最大値を求める、汎用的な関数が作れるようになります。
広告スペース(バナー)
広告スペース(記事内)