繁体   English   中英

为什么索引 Vec 会返回一个值而不是 Index 所承诺的引用?

[英]Why does indexing a Vec return a value instead of a reference as promised by the Index?

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

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转换。 因此问题。

取消括号时会添加自动取消引用。 std::ops::Index文档说,“ container[index]实际上是*container.index(index)的语法糖。”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM