我记得有一种方法可以定义一个特征,这样你就不需要这样写:
trait A<T> {
fn f();
}
impl A<T> for T {
fn f() {}
}
Run Code Online (Sandbox Code Playgroud)
据我记得,可以impl A<T> for T像这样缩短线路:
impl A for T {
Run Code Online (Sandbox Code Playgroud)
我不记得这样做的确切配方。我相信有一个与这种缩短相关的术语。
您正在寻找的成分是默认类型参数,您可以在其中将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() {}
}
Run Code Online (Sandbox Code Playgroud)
在标准库中,PartialEqtrait 就是使用它的一个例子。
| 归档时间: |
|
| 查看次数: |
132 次 |
| 最近记录: |