Rust const and let
2025-05-02
Rust 中 const 与 let 的区别
本文总结 Rust 中 const 和 let 的核心区别,便于日后查阅。
✅ let(绑定变量)
- 语义:声明一个变量,默认是不可变的,使用
mut可变。 - 计算时机:运行时计算。
- 使用场景:需要根据输入或条件生成值时使用。
- 命名风格:遵循 snake_case,例如
let my_value = 1;
let x = 5; // 不可变
let mut y = 10; // 可变
y += 1;
✅ const(常量)
- 语义:定义一个不可变的全局常量。
- 要求:必须显式指定类型。
- 计算时机:编译时。
- 使用场景:值在整个程序中固定不变时使用。
- 命名风格:按照 Rust 约定,常量命名采用全大写字母加下划线,例如
const MAX_SIZE: u32 = 100;
const PI: f64 = 3.14159;
🔍 区别一览
| 特性 | let |
const |
|---|---|---|
| 可变性 | 默认不可变,可用 mut |
始终不可变 |
| 类型声明 | 可选 | 必须指定类型 |
| 计算时机 | 运行时 | 编译时 |
| 作用域 | 当前作用域 | 可用于全局、模块、函数、impl 中 |
| 值限制 | 动态计算值 | 编译期可确定的静态值 |
| 命名风格 | snake_case(小写+下划线) | SCREAMING_SNAKE_CASE(大写+下划线) |
⚠️ 示例对比
const MAX: i32 = 100;
let max = 100;
MAX:编译时嵌入代码中的常量。max:运行时栈上分配的变量。
✅ 总结
- 如果你需要一个运行时值(可能来自输入、计算等),使用
let。 - 如果你需要一个编译期常量、项目中反复引用的固定值,使用
const。 - 命名上建议遵循 Rust 规范:变量使用小写加下划线,常量使用大写加下划线。