Rust 正在为匹配内的向量赋值:发生移动。。。它不实现“复制”特性

Rust 正在为匹配内的向量赋值:发生移动。。。它不实现“复制”特性,rust,Rust,为方便起见,您可以在上找到以下代码: fn main(){ println!(“你好,世界!”); 设n=5; 让mut我的向量:Vec; 环路{ 设x:Result=Ok(-3); 匹配x{ 正常(-3)=>{ my_vector=(0..n).map(|x | x).collect(); //工作 对于我的_向量中的e{ println!(“{}”,e); } }, 错误(e)=>{ eprintln!(“无法接收数据报:{}”,e); }, _ => { } } //不起作用 对于我的_向

为方便起见,您可以在上找到以下代码:

fn main(){
println!(“你好,世界!”);
设n=5;
让mut我的向量:Vec;
环路{
设x:Result=Ok(-3);
匹配x{
正常(-3)=>{
my_vector=(0..n).map(|x | x).collect();
//工作
对于我的_向量中的e{
println!(“{}”,e);
}
},
错误(e)=>{
eprintln!(“无法接收数据报:{}”,e);
},
_ => {
}
}
//不起作用
对于我的_向量中的e{
println!(“{}”,e);
}
打破
}
}
我得到错误“
移动发生,因为我的_向量的类型为Vec,它没有实现复制特性”
,并且我无法使程序编译(并工作),非常感谢任何帮助

注意:这是我在程序中遇到的错误的一个简化示例

如何在匹配{}中设置向量的值,然后在以后重用它

for e in my_vector {
    println!("{}", e);
}
这将消耗
my_向量
。如果您希望迭代这些元素并在以后仍然能够使用它们,可以使用
.iter()


这是一个工作的游乐场:

不要忘记读什么编译器告诉你我看不出这个错误信息是如何导致我得到塞尔吉奥的答案“帮助:考虑借用避免进入for循环:<代码>和MyVIEC < /代码>”非常好,我不知道重复向量会消耗它,非常感谢!
for e in my_vector.iter() {
    println!("{}", e);
}