Rust基础

Posted by 淦 Blog on November 3, 2025

所有权

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() 方法进行克隆