ジェネリック関数
Rustのジェネリクスは、トレイトと密接に連携しています。パラメータ化された型 T
を記述するとき、引数に実装しなければならない必須のトレイトを列挙することで、引数として使用できる型を制限することができます。
この例では、型 T
はトレイト Foo
を実装していなければなりません。
fn my_function<T>(foo: T)
where
T:Foo
{
...
}
ジェネリクスを使うことで、コンパイル時に型とサイズが既知の静的型付け関数を作成し、静的ディスパッチとサイズ付きの値としての保存を可能にします。