Rust 中的 Traits 允许 trait 方法的默认实现:您可以在内部编写一些实现trait MyTrait {...}
,稍后将使用它impl MyTrait for MyStruct
。
但是,您也可以编写 plain 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
没有任何东西是什么for SomeType
?它编译时只有“死代码”警告,所以我想它对编译器有一些意义。但我不明白是否有办法调用它。