"索引::索引"的实现在哪里



我正在跟踪Rust的标准库对Vec<T>的索引(即myvec[n])的实现。如果我是对的,这里应该是来源。

但它又称为Index::index(...),我目前找不到它的定义,有人能提供一些线索吗?提前感谢!

&**运算符通过VecDeref实现对[T]Index实现进行委派。此实现要求自变量是实现SliceIndex特性的东西,该特性定义了如何执行索引操作以及生成的结果类型(例如,范围生成切片,而usize生成Option<&T>)。

为了澄清,请注意,Index::index()是您正在查看的非常相同的trait方法。乍一看,它似乎是一个递归调用,但由于&**self不是同一类型,它导致使用不同的Index实现([T]而不是Vec<T>),因此它实际上不是递归的。

相关内容

  • 没有找到相关文章

最新更新