Rust 变量与绑定

let 用来声明变量,这个过程被称为绑定

位置表达式

代表需要保存的数据,可以进行写操作。

  • 本地变量,
  • 静态变量,
  • 解引用,
  • 数组索引,
  • 字段引用,
  • 位置表达式组合。

位置上下文

  • 赋值语句左侧的操作数,
  • 一元引用表达式的独立操作数,
  • 隐式借用的操作数,
  • match 或 let 右侧出现 ref 模式匹配时。

值表达式

引用了某个存储单元地址中的数据,可以进行读操作。

不可变绑定与可变绑定

let 默认声明的变量为不可变绑定(不能写入)。

let mut 声明的变量为可变绑定(可以写入)。

变量所有权与借用

变量之间的所谓“赋值”,根本上是内存数据地址的转移,这就是所有权转移。

如果不转移所有权,实现变量之间的“赋值”需要用 copy 语义。

& 可以将一个变量的所有权“租借”出来,而原变量依然保留它们的所有权,租借出来的类型叫做引用,可以通过“*”解引用,将其中的值取出来。

编辑于 2020-04-26 22:41