Rust 语言之旅 目录

熟悉的朋友

想一想一些我们已经见过的智能指针,例如 Vec<T>String

Vec<T> 是一个智能指针,它只拥有一些字节的内存区域。 Rust 编译器不知道这些字节中存在着什么。 智能指针解释从它管理的内存区域获取数据意味着什么,跟踪这些字节中的数据结构开始和结束的位置,最后将指针解引用到数据结构中, 成为一个漂亮干净的可以阅读的接口供我们使用(例如my_vec[3])。

类似地,String 跟踪字节的内存区域,并以编程方式将写入其中的内容限制为始终有效的 utf-8,并帮助将该内存区域解引用为类型 &str

这两种数据结构都使用不安全的解引用指针来完成它们的工作。

内存细节: