Rust 的 所有权(Ownership) 是该语言最核心的特性,也是 Rust 能够在没有垃圾回收(GC)的情况下保证内存安全的关键机制。 简单来说,所有权是一套编译时(Compile-time)检查的规则。如果违反了这些规则,程序将无法通过编译。 以下是 Rust 所有权系统的核心内容: --- 1. 三大核心规则 (The Three Rules) 这是必须死记硬背的铁律: 1. Rust 中的每一个值都有一个被称为其“所有者”(Owner)的变量。 2. 值在任一时刻有且只有一个所有者。 3. 当所有者(变量)离开作用域(Scope)时,这个值将被丢弃(Drop)。 --- 2. 规则详解与示例 为了理解这些规则,我们需要区分栈(Stack)和堆(Heap)上的数据。 A. 作用域规则 (Scope) 当变量离开代码块 时,Rust 会自动调用 函数来释放内存。 B. 移动 (Move) —— 针对堆数据 这是 Rust 与 C++ 或 Python 最不同的地方。 对于复杂类型(如 ),数据存储在堆上。当你把一个变量赋值给另一个变量时,所有权会发生转移。 发生了什么? ...