如果我想实现一个具有特定泛型类型的结构,该结构需要很多特征,如下所示。然后每次我为这个结构实现一个特征时,我都必须将其复制到该结构中(它需要相同的类型),有没有一种简便的方法可以做到这一点?我想象类似generic T = Add + ... + PartialEq
impl<T> FOO<T>
where
FE: Add
+ Copy
+ ...
+ Debug
+ PartialEq,
我尝试在网上寻找这个问题但没有结果,但是我对 Rust 也还很陌生,所以这可能很明显,如果是这种情况的话,我很抱歉。
您可以创建一个新特征,该特征具有所有必需的特征作为超特征,然后使用全面实现。例如:
但请注意,在声明结构时保留特征界限是惯用做法(除非您必须命名这些特征的关联类型),并且只在 impl 块上设置界限。但这种技术可以大大简化命名复杂界限。