请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

生命周期问题

老师那你看这个例子的问题怎么处理:

let mut ps:Vec<&i32> = vec![];

let mut loop_vec = [1,2,3,4,5,6];

for item in loop_vec.iter(){
        let i = item + 1; ps.push(&i);
}

报错信息:ps.push(&i); &i borrowed value does not live long enough `i` dropped here while still borrowed

正在回答 回答被采纳积分+3

1回答

叶枭 2022-02-01 18:13:03

这个问题你分析下生命周期范围会比较清楚, 变量 i 的生命周期范围是在 `for item in loop_vec.iter(){ }` 之间, 而代码却希望将 i 变量的引用带到 main 函数的范围内(ps 变量).

修改方法就是将 ps 的类型定义为 `Vec<i32>`

1 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信