问题来自以下代码:
#[derive(Debug)]
struct Foo {
x: i32,
}
pub fn main() {
let a = vec![Foo{x:1}, Foo{x:2}];
println!("{:?}", a[1]);
println!("{:?}", &a[1]);
println!("{:?}", *(&a[1]));
}
在cargo run
之后,代码输出:
Foo { x: 2 }
Foo { x: 2 }
Foo { x: 2 }
这使我想知道:
println!("{:?}", a[1])
不拥有第二元素的所有权?