为什么我可以在不使用引用的情况下获取它的所有权后访问它?

Tve*_*ous 2 rust

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_list[0], &number_list[0]);
}
Run Code Online (Sandbox Code Playgroud)

输出是:

1 : 1 : 1 : 1
Run Code Online (Sandbox Code Playgroud)

另一个问题是,除了参考之外,向量索引与引用和非引用之间的区别是什么?

She*_*ter 6

你有一个整数向量(i32具体),并i32实现了Copy特征.

索引语法返回解除引用的值.由于索引类型实现Copy,编译器会隐式复制它.

根本无法使用索引语法从向量中获取项目的所有权.

除了参考之外,向量索引与引用和非引用之间的区别是什么

如果没有&,则复制值(但仅限于它实现Copy).使用&,您可以引用向量中的值.