Index
trait的文档说明.index()
方法返回对Output
关联类型(link)的引用:
fn index(&self, index: Idx) -> &Self::Output;
对于Vec<T>
和usize
指数,Output
是T
.因此,我希望下面代码段中的变量a
的类型为&i32
.
let v = vec![0];
let a = v[0];
然而,a
的类型是i32
.为什么?我正在学习Rust,据我所知,Rust要求在任何地方都是显式的,从不执行value<->reference
次隐式转换.这就是问题所在.