【发布时间】:2018-01-07 22:56:21
【问题描述】:
我正在学习所有权和借贷。
borrow1 和borrow2 的区别在于& 在borrow2 中打印时的用法:
fn borrow1(v: &Vec<i32>) {
println!("{}", &v[10] + &v[12]);
}
fn borrow2(v: &Vec<i32>) {
println!("{}", v[10] + v[12]);
}
fn main() {
let mut v = Vec::new();
for i in 1..1000 {
v.push(i);
}
borrow1(&v);
println!("still own v {} , {}", v[0], v[1]);
borrow2(&v);
println!("still own v {} , {}", v[0], v[1]);
}
即使borrow1 没有&,为什么它们给出相同的输出?
【问题讨论】:
-
"burrow" != "borrow"
-
嘿Shepmaster,你所说的“洞穴”是什么意思!=“借”。
-
注意你可以写这个
let v: Vec<_> = (1..10).collect();而不是循环。 -
Boiethios - 很高兴知道! :)
标签: rust