在 Rust 裡,泛型與特徵攜手合作。當我們描述一個參數的型別 T 時, 我們可以藉由列出特徵來限制該型別一定要實作這些特徵。
T
在這個例子裡,型別 T 一定要實作特徵 Foo:
Foo
fn my_function<T>(foo: T) where T:Foo { ... }
藉由使用泛型,我們能產生靜態型別,如此在編譯期間就能知道型別及大小, 允許我們使用靜態發送,並且將它以已知大小的數值儲存起來。