← Rust コース
26. ジェネリック関数 — 型をパラメータにする
fn swap<T, U>(...) のように関数名の後ろに <T> を書くと、T を「あとで決まる型」として使えます。これをジェネリクスと呼び、i32 用・f64 用と同じ関数を型ごとに書き分ける重複をなくせます。
Option<T> や Vec<T> の <T> も同じ仕組みで、標準ライブラリはジェネリクスの塊です。呼び出し時に型を書く必要はほとんどなく、渡した引数からコンパイラが T を推論してくれます。
ジェネリクスはコンパイル時に具体的な型ごとのコードに展開されるため、実行時のコストはありません。「型だけ違う同じ処理を2回書いたら、ジェネリクスにできないか考える」が実務での目安です。
▶ サンプルコードを実行してみよう(自由に書き換えてOK)
Rust