所有权
Stack和Heap区别
- Stack 可以保存指向 Heap上存储的数据的指针,而 Heap 只保存没有指针的数据。
 - Stack 保存不可变数据,而 Heap 保存可变数据。
 - Stack 保存可复制的数据,而 Heap 保存不可复制的数据。
 - Stack 保存与特定函数关联的数据,而 Heap 保存可能比函数存活更长的数据。
 
原则
- Box 的所有者来管理内存释放:Rust 会自动释放 Box 的堆(heap)内存。
 - Box 内存释放原则:如果一个变量拥有一个 box,当 Rust 释放该变量的 frame 时,Rust 会释放该 box 的堆内存(heap)。
 - 移动堆(heap)数据原则:如果变量 x 将堆(heap)数据的所有权移动给另一个变量 y,那么在移动后,x 不能再使用。
 - Clone 可避免移动:避免数据移动的一种方法是使用 .clone() 方法进行克隆