Table of Contents generated with DocToc
集合容器,是把一系列拥有相同类型的数据放在一起,统一处理
- 字符串 String、数组 [T; n]、列表 Vec 和哈希表 HashMap 等;
- 切片 slice
- 循环缓冲区 VecDeque、双向列表 LinkedList 等
切片是描述一组属于同一类型、长度不确定的、在内存中连续存放的数据结构,用 [T] 来表述。因为长度不确定,所以切片是个 DST(Dynamically Sized Type)。
- &[T]:表示一个只读的切片引用。
- &mut [T]:表示一个可写的切片引用。
- Box<[T]>:一个在堆上分配的切片。
String、&String、&str
- String 在解引用时,会转换成 &str
数组[T; n] 、列表 vec、字符串 String 以及它们的切片关系
Box<[T]> 和切片的引用 &[T] 也很类似:它们都是在栈上有一个包含长度的胖指针,指向存储数据的内存位置。区别是:Box<[T]> 只会指向堆,&[T] 指向的位置可以是栈也可以是堆;此外,Box<[T]> 对数据具有所有权,而 &[T] 只是一个借用。