所有权、借用与生命周期
所有权三规则
- 每个值有唯一所有者。
- 值离开所有者作用域时被 drop(除非所有权已转移)。
- 同时只能存在一个可变借用 或 任意多个不可变借用,二者不可共存(在重叠作用域内)。
移动与 Copy
赋值与传参可能移动非 Copy 类型;实现了 Copy 的标量与简单聚合按位复制。Clone 显式深拷贝堆数据(如 String)。
借用检查器与 NLL
非词法作用域(NLL)缩短引用有效区间,使更多安全代码可通过检查。仍失败时需重构数据流或使用内部可变性模式(RefCell 等)并承担运行时代价。
生命周期
标注用于表达引用之间的关系(如「输出与输入同寿」)。大量省略规则由编译器推断;显式标注常见于返回引用或结构体存引用字段时。'static 表示与程序同寿,不等于静态存储期唯一来源(字符串字面量等)。
常见错误信息
E0499/E0502 等指向借用冲突;优先缩小可变借用作用域、拆分为函数、或使用索引代替同时持有整切片与元素可变引用(在 API 允许时)。