我想知道 Rust 中的“slices”是什么。结果发现,它只是一个带有数据指针和大小的结构体。我查看了索引源代码,并且找到了这个:
impl<T> ops::Index<usize> for [T] {
type Output = T;
fn index(&self, index: usize) -> &T {
// NB built-in indexing
&(*self)[index]
}
}
我不是Rust专家,但&(*self)
对我来说似乎是一个指针,并且据我所知,在Rust中没有指针索引。那么这个索引是如何工作的呢?它只是编译器内置的东西吗?