我记得有一种定义特征的方法,因此您无需编写此特征:
trait A<T> {
fn f();
}
impl A<T> for T {
fn f() {}
}
据我所知,可以像这样缩短impl A<T> for T
行:
impl A for T {
我不记得这样做的确切方法。我相信有一个与这种缩短有关的术语。
答案 0 :(得分:3)
您要查找的成分是默认类型参数,您可以在其中将T
默认设置为Self
:
trait A<T = Self> {
fn f();
}
struct Tee;
impl A for Tee { // the "A" is A<Self>, i.e. A<Tee>.
fn f() {}
}
在标准库中,PartialEq
特征是使用此特征的示例。