Why I can still access a vector's element after taking ownership of it without using reference?

前端 未结 1 1793
名媛妹妹
名媛妹妹 2021-01-22 02:48
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         


        
相关标签:
1条回答
  • 2021-01-22 03:23

    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.

    0 讨论(0)
提交回复
热议问题