
相信很多学习 Rust 的朋友都曾在一些资料或书籍里看到过下面那样的配图,你大概能猜出来这是跟所有权和借用检查有关的一些标记,显然它们有着特殊含义。你可能会对这些标记感到好奇,想知道它们是什么意思,以及这是否是一种你还不知道的解释所有权和借用检查的工具或方法论?如果你曾经做过一些调研,应该知道这个东西其实大有来头,但离谱的是,我们可以用工具很轻易地生成一段代码的标注,却看不懂是什么意思,因为不管是在中文互联网还是外网,都很难找到详细介绍这些符号的文章(这是有原因的,稍后会解释)。今天,我们就来填上这个“坑”,带领大家以编译器的工作方式重新认识 Rust 的借用检查。如果你觉得凭借自己的 Rust 背景猜也能猜个八九不离十,那不妨跟着这篇文章往下看一看,看看你能猜对多少,相信在看完时你能体会到这篇文章的硬核程度。

图1. 一个权限标注示例
上图来自于美国布朗大学编纂的《The Rust Programming Language》一书的

