fn f<'a>(my_vec: &'a mut Vec<&'a i32>, value: &'a i32) {
my_vec.push(value);
}
fn main() {
let mut my_vec = Vec::new();
let i1 = 1;
let i2 = 2;
f(&mut my_vec, &i1);
f(&mut my_vec, &i2);
}
为什么会借用可变引用两次呢?
Ext Link: https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=daca11853bde4ce2fce1f159aa03cf49
1
共 3 条评论, 1 页
评论区
写评论谢了仔哥
--
👇
苦瓜小仔:
一旦你有一个
&'a mut DataStructure<'a>
,意味着创建了DataStructure<'a>
的唯一的、独占引用,于是无法再借用。(永远不要这样写,独占引用不是这样用的)&mut DataStructure<'a>
则意味着给DataStructure<'a>
创建任何一个独占引用,它可以 再借。Borrowing something forever
第一个函数参数改成
my_vec: &mut Vec<&'a i32>
一旦你有一个
&'a mut DataStructure<'a>
,意味着创建了DataStructure<'a>
的唯一的、独占引用,于是无法再借用。(永远不要这样写,独占引用不是这样用的)&mut DataStructure<'a>
则意味着给DataStructure<'a>
创建任何一个独占引用,它可以 再借。Borrowing something forever