我在Rust代码库中经常看到以下模式,但找不到这种用法的解释。
一个人为什么要使用impl ... for
结构?
伪代码:
impl Handler {
pub fn method1() -> () {
}
}
impl Dummy for Handler {
pub fn method2() -> () {
}
}
我在Rust代码库中经常看到以下模式,但找不到这种用法的解释。
一个人为什么要使用impl ... for
结构?
伪代码:
impl Handler {
pub fn method1() -> () {
}
}
impl Dummy for Handler {
pub fn method2() -> () {
}
}
impl Struct ...
为Struct
添加了一些方法。这些方法对其他类型或特质不可用。
impl Trait for Struct ..
将特质Trait
实现于结构体Struct
。这样就可以在Struct
中使用特质的方法。
因此,尽管这两种语法看起来相似,但它们执行完全不同的操作。 impl Struct ...
向类型添加新的(之前未定义的)方法,而另一种则向类型添加先前定义的方法(来自特质)。