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}}是什么?它仅以“死代码”警告进行编译,因此我认为它对编译器具有一定的意义。但是我不知道是否有一种方法可以调用它。