0

I'm trying to iterate over a vector in Rust. I am able to print the all the values, but when I take a reference of the vector inside the for loop I'm getting a "value borrowed here after move" error.

Can anyone please explain to me the ownership concept using below code?

fn main() {
    let vector = vec![1,2,3,5];
    for _item in vector{
        //println!("item{:?}",_item);
        println!("item{:?}",vector);
    }
}

error[E0382]: borrow of moved value: `vector`
 --> src/main.rs:7:29
  |
5 |     for _item in vector{
  |                  ------ value moved here
6 |         //println!("item{:?}",_item);
7 |         println!("item{:?}",vector);
  |                             ^^^^^^ value borrowed here after move
  |
  = note: move occurs because `vector` has type `std::vec::Vec<i32>`, which does not implement the `Copy` trait

error: aborting due to previous error

For more information about this error, try `rustc --explain E0382`.
Increasingly Idiotic
  • 5,700
  • 5
  • 35
  • 73
fekky Dev
  • 344
  • 3
  • 16

0 Answers0