区分值与位置:让 Rust 所有权豁然开朗的心智模型

Abhishekcur · x · 2026-09-04

作者提出理解 Rust 所有权的心智模型:把两个问题分开——这个表达式是什么类型,以及周围代码如何使用它。值(value) 是类型的一个实例(如 42 或某个 String);位置表达式(place expression) 标识可容纳值的存储位置;大多数其他表达式是值表达式,另有少量用于赋值号左侧的 assignee 表达式。

核心规则:当位置被用于值上下文时,Rust 尝试取其存储的值——若类型实现了 Copy 则复制,否则可能发生 move。move 是所有权的转移,但并不保证字节在物理上改变地址:编译器可以复制小表示、优化掉复制,或采用其他等价实现。

原文链接 →

「编程与Agent」频道最新

更多「编程与Agent」频道 AI 资讯 →