fn main() {
let number_list = vec![1, 2, 3, 4, 5];
let n = number_list[0];
let r = &number_list[0];
println!(\"{} : {} : {} : {}\", n, r, number_li
You have a vector of integers (i32 to be specific), and i32
implements the Copy trait.
The index syntax returns a dereferenced value. Since the indexed type implements Copy
, the compiler copies it implicitly.
You cannot take ownership of an item from a vector using the indexing syntax at all.
what is the difference between vector indexing with a reference and a non-reference except taking the reference
Without the &
, the value is copied (but only because it implements Copy
). With the &
, you have a reference to the value inside the vector.