问题描述
我刚刚阅读了 Rust by Example 中的 this article about generics and Traits,他们似乎在通用调用方上实现了 Trait。查看他们的文章以获取完整示例,但这里有一个最小的工作示例:
struct Example;
trait Foo {
fn print_foo(&self);
}
impl<T> Foo for T {
fn print_foo(&self) {
println!("foo");
}
}
fn main() {
let example = Example;
example.print_foo();
}
此示例有效并打印 foo
。这是如何运作的?对于上下文,我阅读了完整的 Rust 书,直到前面提到的文章才看到提到这一点。像这样的通用实现究竟是如何工作的?编译器如何知道将 print_foo
与 Example
相关联?这个 impl
的范围如何?我可以使用 crate 范围的通用实现吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)