“impl ... for” 是什么意思?

35

我在Rust代码库中经常看到以下模式,但找不到这种用法的解释。

一个人为什么要使用impl ... for结构?

伪代码:

impl Handler {
    pub fn method1() -> () {
    }
}
impl Dummy for Handler {
    pub fn method2() -> () {
    }
}

5
这是用于为类型实现特质的,可以查看Rust书中关于特质的章节 - vallentin
1个回答

43

impl Struct ...Struct添加了一些方法。这些方法对其他类型或特质不可用。

impl Trait for Struct ..将特质Trait实现于结构体Struct。这样就可以在Struct中使用特质的方法。

因此,尽管这两种语法看起来相似,但它们执行完全不同的操作。 impl Struct ...向类型添加新的(之前未定义的)方法,而另一种则向类型添加先前定义的方法(来自特质)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接