所有权三大规则
建立 Ownership 直觉:拥有者、作用域与 Drop
本节你将能
直觉模型
把每个值想成「只能有一把钥匙的保险柜」:谁拿钥匙谁负责最后关门(Drop)。转交钥匙后,原持有者不能再开。
核心要点
- 每个值有一个所有者
- 同一时刻只能有一个所有者
- 所有者离开作用域时,值被丢弃(Drop)
let s1 = String::from("hi");
let s2 = s1; // s1 被移动,此后不可用
println!("{s2}");
常见误区
用 Java/Python 的「都是引用」直觉硬套——堆上数据默认 move,不是隐式共享。
动手
写 move 后再用旧变量,读报错;再对 i32 做同样操作,解释为何 Copy 类型不同。
互动
测验:哪些赋值会失效原绑定。
本节小结
下一节讲如何「借钥匙」而不转交——借用与引用。