`impl…for`是什么意思?
我看到 Rust 代码库中经常出现以下模式,但我找不到解释为什么要使用它。
人们将这种impl ... for结构用于什么目的?
伪代码:
impl Handler {
pub fn method1() -> () {
}
}
impl Dummy for Handler {
pub fn method2() -> () {
}
}
回答
impl Struct ...添加一些方法到Struct. 这些方法不适用于其他类型或特征。
impl Trait for Struct ..实现Traitstruct的特征Struct。这导致 trait 的方法可用于Struct。
因此,即使这两种语法看起来相似,它们也做两件完全不同的事情。
impl Struct ...向类型添加新的(先前未定义的)方法,而另一个将先前定义的方法(来自特征)添加到类型。