查询Rust标准库中Index::index的实现位置
寻找Rust Vec的Index::index方法定义的线索
你找的Vec索引相关代码是对的,myvec[n]语法确实对应Index::index方法的调用——而Index是Rust标准库中定义的通用trait,并非Vec自身独有的方法,所以得去core库的ops模块里找它的定义:
Indextrait的定义在core::ops::Index路径下,源码位于Rust源码仓库的core/ops/index.rs文件中,核心方法签名如下:pub trait Index<Idx: ?Sized> { type Output: ?Sized; fn index(&self, index: Idx) -> &Self::Output; }Vec对
Index<usize>的实现逻辑,在你找到的那段代码之上,最终会做边界检查(越界会触发panic),然后直接访问内部缓冲区的对应位置,本质和切片[T]的索引逻辑一致。本地查看的话,你可以通过命令
rustup doc core::ops::Index打开官方文档,直接跳转到该trait的定义与说明;也可以在Rust官方源码浏览器中定位到core库的对应文件。
内容的提问来源于stack exchange,提问作者absuu
相关产品推荐
相关产品推荐

