static
Rust 中可以使用 static 声明全局变量,它的声明周期是整个程序,永远是 'static
,它占用的内存空间也不会在执行过程中回收。
- 全局变量必须在声明的时候马上初始化
- 全局变量的初始化必须是编译器可确定的常量
- 使用
mut
修饰的全局变量,在更改的时候必须使用unsafe
关键字。
const
使用 const 声明的是常量,所以不能使用 mut
进行修饰,常量的初始化表达式也一定要是一个编译器常量。它与 static 变量最大的区别是:编译器并不一定会给 const 常量分配内存空间,在编译过程中,它很可能会被内联优化。