我有一个特点,只有一个要求,那就是有一种方法 len(&self) -> usize . 然后,它为结构的两个新方法提供了实现。
len(&self) -> usize
trait MyTrait { fn len(&self) -> usize; // ... some new functions with implementations }
std::collections::LinkedList 它已经有了一个具有精确类型签名的方法。目前,我正在这样做:
std::collections::LinkedList
impl<T> MyTrait for LinkedList<T> { fn len(&self) -> usize { self.len() } }
然后,我可以使用 MyTrait 在我的 LinkedList 实例。但是,由于类型签名是相同的,因此感觉没有必要像这样重复方法的定义。有没有办法不重新定义 len
MyTrait
LinkedList
len
有没有办法不重新定义 len 在我的特质实现中?
不,这是不可能的。
您可能可以编写某种宏来为您编写代码,但至少可以说,处理类型参数很烦人。
另见: