Rust中没有“ for MyStruct”的“ impl MyTrait”有什么作用?

时间:2019-01-01 16:37:37

标签: rust traits default-implementation

Rust中的特性允许特质方法的默认实现:您可以在trait MyTrait {...}内编写一些实现,稍后将在impl MyTrait for MyStruct中使用。

但是,您也可以编写普通的impl MyTrait,这似乎不会改变程序的行为:

trait MyTrait {
    fn foo(&self) {  // Default implementation
        println!("1");
    }
}

impl MyTrait for i32 {
}

fn main() {
    1i32.foo();  // Prints '1'
}

impl MyTrait {  // What is this?
    fn foo(&self) {
        println!("2");  // Does nothing?
    }
}

没有任何impl MyTrait的{​​{1}}是什么?它仅以“死代码”警告进行编译,因此我认为它对编译器具有一定的意义。但是我不知道是否有一种方法可以调用它。

0 个答案:

没有答案