我目前正在学习Ruust,我正在试验向量,正如文档中提到的,Vect模块的Push方法的签名如下:
pub fn push(&mut self, value: T)
从上面我们可以看出,Push方法接受变量本身,而不是对名为"Value"的变量的引用(显然),因此它获得了它的所有权,因此,在使用Push方法之后,使用传递到参数中的值不再可行. 但是,在我编译并执行了以下代码片段之后,就可以使用它了
let mut v = vec![1, 2, 3, 4, 5];
let mut x = 10;
v.push(x);
println!("{:?}", v);
x = 20;
println!("{}", x);
println!("{:?}", v);
我没有遇到任何编译或运行时错误,我真的很想知道为什么会这样,因为我对签名的理解是混乱的,或者有一些我不知道的东西,我想知道.