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