Index trait的文档说明.index()方法返回对Output关联类型(link)的引用:

fn index(&self, index: Idx) -> &Self::Output;

对于Vec<T>usize指数,OutputT.因此,我希望下面代码段中的变量a的类型为&i32.

let v = vec![0];
let a = v[0];

然而,a的类型是i32.为什么?我正在学习Rust,据我所知,Rust要求在任何地方都是显式的,从不执行value<->reference次隐式转换.这就是问题所在.

推荐答案

当括号被go 除糖分时,会自动取消引用.std::ops::Index documentation表示,"container[index]实际上是*container.index(index)的语法糖."

Rust相关问答推荐

按下按钮时如何在服务器中创建文件并在本地下载?

如何处理对打包字段的引用是未对齐错误?

使用Rust s serde_json对混合数据类型进行优化'

什么是Rust惯用的方式来使特征向量具有单个向量项的别名?

铁 rust 干线无法使用PowerShell获取环境变量

Pin<;&;mut可能将Uninit<;T>;>;合并为Pin<;&;mut T>;

如何在Rust中将选项<;选项<;字符串>;转换为选项<;选项&;str>;?

我可以在不收集或克隆的情况下,将一个带有Item=(key,val)的迭代器拆分成单独的key iter和val iter吗?

Trait bound i8:来自u8的不满意

rust 蚀生命周期 不匹配-不一定超过此处定义的生命周期

返回Result<;(),框<;dyn错误>>;工作

装箱特性如何影响传递给它的参数的生命周期 ?(举一个非常具体的例子)

为什么BufReader实际上没有缓冲短寻道?

用于实现获取 struct 体 id 的特征规范

如何轮询 Pin>?

Button.set_hexpand(false) 不会阻止按钮展开

在多核嵌入式 Rust 中,我可以使用静态 mut 进行单向数据共享吗?

实现不消费的迭代器

在 Rust 中有条件地导入?

如何在 Rust 的内置函数上实现特征?