泛型

泛型是一个关于将类型和功能泛化以适用于更广泛情况的主题。这在多方面都非常有用,可以大大减少代码重复,但可能需要相对复杂的语法。具体来说,使用泛型需要非常谨慎地指定泛型类型在哪些类型上是有效的。泛型最简单和最常见的用途是类型参数。

类型参数通过使用尖括号和大写驼峰命名法来指定为泛型:<Aaa, Bbb, ...>。"泛型类型参数"通常表示为 <T>。在 Rust 中,"泛型"也用来描述任何接受一个或多个泛型类型参数 <T> 的东西。任何被指定为泛型类型参数的类型都是泛型的,而其他所有类型都是具体的(非泛型)。

例如,定义一个名为 foo泛型函数,它接受一个任意类型的参数 T

fn foo<T>(arg: T) { ... }

因为 T 已经使用 <T> 指定为泛型类型参数,所以在这里用作 (arg: T) 时被视为泛型。即使 T 之前已被定义为一个 struct,这种情况也成立。

下面的例子展示了一些泛型语法的实际应用:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

另请参阅:

结构体