Rust中的泛型与 Trait 是相辅相成的。 当我们描述一个参数化类型 T 时,我们可以通过列出参数必须实现的 Trait 来限制哪些类型可以作为参数使用。
T
在以下例子中,类型 T 必须实现 Foo 这个 Trait:
Foo
fn my_function<T>(foo: T) where T:Foo { ... }
通过使用泛型,我们在编译时创建静态类型的函数,这些函数有已知的类型和大小,允许我们对其执行静态调度,并存储为有已知大小的值。