问题

一个在其容器类型上是泛型的 trait 有类型规范要求 - trait 的用户必须指定其所有的泛型类型。

在下面的例子中,Contains trait 允许使用泛型类型 AB。然后,该 trait 为 Container 类型实现,指定 i32 作为 AB,以便它可以与 fn difference() 一起使用。

因为 Contains 是泛型的,所以我们被迫为 fn difference() 显式声明所有的泛型类型。在实践中,我们希望找到一种方法来表示 AB输入 C 决定。正如您将在下一节中看到的,关联类型 正好提供了这种能力。

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

另请参阅

structtrait