观看rust相关视频时有相关trait implement for struct 时 有直接 for &mut T 的
trait Foo {
fn run(&self);
}
struct Bar;
impl Foo for &mut Bar {
fn run(&self) {
print!("&mut Bar run!");
}
}
impl Foo for Bar {
fn run(&self) {
print!("Bar run!");
}
}
这里的 for &mut T 和一般的 for T 的区别在什么地方?为什么会有 for &mut T 的这种形式,主要作用是什么?
1
共 2 条评论, 1 页
评论区
写评论多谢。把所有可能场景列出来后,这个问题就看出来不一样的地方了 对以下内容的回复:
impl Foo for Bar { fn run(&self) { println!("Bar run!"); } }
// impl Foo for &mut Bar 可以覆盖上面的实现. // let b = &mut Bar; // b.run(); impl Foo for &mut Bar { fn run(&self) { println!("&mut Bar run!"); } }