Rust 如何将项从函数参数推送到向量(从函数参数推送到向量)-不同的生存期问题
我需要把一个项目推到一个向量上。但项和向量都是函数参数 要复制的简单代码:-Rust 如何将项从函数参数推送到向量(从函数参数推送到向量)-不同的生存期问题,rust,lifetime,Rust,Lifetime,我需要把一个项目推到一个向量上。但项和向量都是函数参数 要复制的简单代码:- 结构点{ x:i32, y:i32 } fn main(){ 让点:Vec=Vec!(); 设起点=点{x:1,y:2}; fn填充点(点:&mut Vec,点:&F){ //一些条件和循环 点。推(点); } 填充点(多点和起点); } 错误:- | 13 | fn fill_points<F>(points: &mut Vec<&F>, point: &
结构点{
x:i32,
y:i32
}
fn main(){
让点:Vec=Vec!();
设起点=点{x:1,y:2};
fn填充点(点:&mut Vec,点:&F){
//一些条件和循环
点。推(点);
}
填充点(多点和起点);
}
错误:-
|
13 | fn fill_points<F>(points: &mut Vec<&F>, point: &F ){
| -- -- these two types are declared with different lifetimes...
14 | // Some conditions
15 | points.push(point);
| ^^^^^ ...but data from `point` flows into `points` here
|
13 | fn填充点(点:&mut Vec,点:&F){
|--这两种类型的声明具有不同的生存期。。。
14 |//某些条件
15 |点。推(点);
|^^^^^……但来自“点”的数据在此处流入“点”
操场URL:-您需要添加一个生存期参数:
struct Point {
x: i32,
y: i32,
}
fn main() {
let start_point = Point { x: 1, y: 2 };
let mut points: Vec<&Point> = vec![];
fn fill_points<'a, F>(points: &mut Vec<&'a F>, point: &'a F) {
// Some conditions
points.push(point);
}
fill_points(&mut points, &start_point);
}
结构点{
x:i32,
y:i32,
}
fn main(){
设起点=点{x:1,y:2};
让多个点:Vec=Vec![];
fn填充点,点:&'a F){
//一些条件
点。推(点);
}
填充点(多点和起点);
}
(基于@Stargateur的简化代码)您需要终生注释。谢谢@Stargateur@apatniv谢谢!问题似乎已经解决了。我想您可以关闭它,甚至可以自己发布答案,@rameshkitsirihettiarachchi:)