【发布时间】:2021-07-04 20:57:44
【问题描述】:
我已经定义了一个 trait Node<T: Ord + Eq + std::fmt::Debug> 来为树的节点提供标准操作 - 我最初使用的是枚举,但我认为这种方法会更灵活一些,并减少一些冗长。
我想声明一个“内部节点”结构,其中包含一组相同的类型,每个实现节点都对应相同的类型。如果 Node 不是通用的,我会这样声明:
struct InternalNode<T: Node>(Vec<T>);
但是因为 Node 是泛型的,我需要引入另一个类型参数,看起来像这样:
struct InternalNode<E: Ord + Eq + std::fmt::Debug, T: Node<E>>(
Vec<T>,
);
使用该解决方案,编译器抱怨 E 未使用,尽管我在类型参数 T 的声明中使用了它。我假设我只是错误地猜测了这种行为的语法,有人可以帮助我吗?谢谢!
【问题讨论】:
标签: rust type-parameter nested-generics