Skip to content
On this page

所有权、借用与生命周期

所有权三规则

  1. 每个值有唯一所有者。
  2. 值离开所有者作用域时被 drop(除非所有权已转移)。
  3. 同时只能存在一个可变借用 任意多个不可变借用,二者不可共存(在重叠作用域内)。

移动与 Copy

赋值与传参可能移动Copy 类型;实现了 Copy 的标量与简单聚合按位复制。Clone 显式深拷贝堆数据(如 String)。

借用检查器与 NLL

非词法作用域(NLL)缩短引用有效区间,使更多安全代码可通过检查。仍失败时需重构数据流或使用内部可变性模式(RefCell 等)并承担运行时代价。

生命周期

标注用于表达引用之间的关系(如「输出与输入同寿」)。大量省略规则由编译器推断;显式标注常见于返回引用或结构体存引用字段时。'static 表示与程序同寿,不等于静态存储期唯一来源(字符串字面量等)。

常见错误信息

E0499/E0502 等指向借用冲突;优先缩小可变借用作用域、拆分为函数、或使用索引代替同时持有整切片与元素可变引用(在 API 允许时)。

技术文库