不可变数据建议Rc<[T]>/Arc<[T]>替代Vec<[T]>

slice 对于不可变数据, Arc<[T]>可能是比 Vec<T> 更好的选择, 因此, 如果你在构建一个大数据序列, 并且 之后不会修改, 那么考虑 Rc<[T]>, 它非常适合存储的数据或数组或集合或只是传递一般引用.

看下内存模型就明白了:

#![allow(unused)]
fn main() {
stack    
            [ptr |meta]
            +–––-+–––+
            │ *  │   │ 
            +–│-–+--–│
              |
heap          |
            +–V–+–––+–––+
            │   │   │ T │
            +–––+--–+–––+
              /   │
 ref count <–/    V 
            weak ref count
}