use*_*342 17
[u8]表示 的未调整大小的连续序列u8。由于其大小在编译时未知,因此无法将其存储在变量中,因为变量需要固定大小。出于同样的原因,您不能将其传递给函数或从函数返回它,因此它本身并不是很有用。切片类型 like 的主要用途[u8]是创建切片引用(如&[u8])、智能指针(如Box<[u8]>)和泛型类型(如AsRef<[u8]>)。str包装(由)a[u8]但只允许有效的 UTF-8。
&[u8]是一个“切片引用”,它引用这样的序列,并且还携带有关其长度的信息。引用由两个机器字宽的“胖指针”表示,由指向数据的指针和数据的长度组成。它是 的基础&str。
Box<[u8]>类似于&[u8],但它拥有底层内存,即底层八位字节序列由 进行堆分配Box::new()并在 上释放Drop。就像 一样&[u8],它是两个机器字宽。它是 的基础Box<str>。
Vec<u8>类似于Box<[u8]>,只不过它另外存储了“容量”计数,使其成为三个机器字宽。单独存储的容量允许有效地调整底层序列的大小。它是 的基础String。