问题

对于容器类型是泛型的 trait,有类型规范要求 —— trait 的使用者必须指定所有的泛型类型。

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

由于 Contains 是泛型的,我们不得不为 fn difference() 显式声明所有泛型类型。实际上,我们希望有一种方法来表达 AB 是由输入 C 决定的。正如你将在下一节中看到的,关联类型恰好提供了这种能力。

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

另请参阅:

structtrait