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