Rust变量

215 阅读1分钟

Rust变量的本质


Rust 变量代表栈空间内存位置。

任何都需要通过一个变量建立绑定关系,变量可以分值变量指针变量

  1. 值变量代表栈内存位置,存放的是数据值、数据值可以直接使用;
  2. 指针变量代表的栈内存位置是已使用的内存位置、必须解引用后才可以使用存放的值;

Rust变量属性


Rust变量有四个基本属性:

  1. 类型:约定变量所绑定的值类型(实现Sized trait的类型),编译器编译时必须知道变量所绑定的值size;

    当绑定数据值的时候,数据值必须是size已知的值;

    当绑定地址值的时候,地址值同样是size已知的值;

  2. 状态:变量所绑定值的状态(可变不可变);

  3. 生命周期:一切皆有寿命;

  4. 作用域,变量的存在空间,离开作用域变量失效;

Sized trait:是一个空 trait,仅仅是作为一个标识使用。

Rust 中 marker trait 如下

Copy Types whose values can be duplicated simply by copying bits.
Send Types that can be transferred across thread boundaries.
Sized Types with a constant size known at compile time.
Sync Types for which it is safe to share references between threads.
Unpin Types that can be safely moved after being pinned.

变量与一个具体类型的绑定场景可以如下:

  1. 绑定栈内存某处存储的数据值
  2. 绑定栈内存某处存储的地址值

需要注意:内存中的一个值可以同时被多个变量共享绑定