Rust const and let

2025-05-02

Rust 中 constlet 的区别

本文总结 Rust 中 constlet 的核心区别,便于日后查阅。


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 规范:变量使用小写加下划线,常量使用大写加下划线。