rust 变量绑定

1 创建变量

fn 变量绑定() {
    let num_0 = 10;        // 定义为不可变
    let mut num_1 = 20;    // 定义为可变
    let _num_2 = 30;            //_ 忽略没有使用过的变量
    static num_3: i32 = 40;     // 创建静态变量
    const  num_4: i64 = 50;     // 创建const变量
    println!("num_0 = {}", num_0);
    println!("num_1 = {}", num_1);
    println!("num_2 = {}", _num_2);
    println!("num_3 = {}", num_3);
    println!("num_4 = {}", num_4);
}

fn main() {
    变量绑定();
}
  1. 不可变变量 let num_0 = 10;  使用这种方法创建的变量默认不可变

特性:

  • 绑定值后不可修改,若尝试修改会触发编译错误。
  • 支持通过遮蔽(shadowing)重新绑定新值或改变类型(如`let num_0 = "text";`)。
  • 用途:适用于数据无需修改的场景,如配置参数或中间计算结果。

        2.可变变量 let mut num_1 = 20;
特性:
  • 允许后续修改值,但**类型不可变**(如不能从`i32`改为字符串)。
  • 相比遮蔽(shadowing),`mut`更明确表示“值可变”而非“重新定义新变量”。
  • 用途:适用于需要频繁更新的数据,如循环计数器或状态管理。

        3. 忽略未使用变量  let _num_2 = 30;
特性:
  • 避免编译器对未使用变量的警告(Rust默认会警告未使用的变量)。
  • 与未加下划线的变量不同,`_`前缀明确告知编译器“此变量可能暂时不用”。
  • 用途:常用于占位符或未来可能使用的临时变量。

        4. 静态变量  static num_3: i32 = 40;
特性:
  • 全局生命周期(`'static`),内存地址固定,程序运行期间有效。
  • 默认不可变,若需可变需添加`mut`并使用`unsafe`块操作(如`static mut`)。
  • 与常量的区别:静态变量有固定内存地址,而常量可能被内联替换。
  • 用途:全局共享数据(如配置表),但需谨慎处理并发安全问题。

        5. 常量  const num_4: i64 = 50;
特性:
  • 编译时确定值,不允许运行时计算或函数返回值。
  • 不可遮蔽(shadowing)或重新绑定,且命名规范要求全大写(如`MAX_VALUE`)。
  • 与静态变量的区别:常量无固定内存地址,直接内联到使用处。
  • 用途:定义全局不可变值(如数学常数π或超时阈值)。

类型可变性作用域生命周期典型场景
不可变变量块级作用域内临时计算、配置参数
可变变量块级作用域内状态更新、循环计数器
静态变量❌/✅全局程序生命周期全局共享数据
常量全局/块级编译时替换数学常数、固定配置
忽略变量-块级作用域内占位符、临时变量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值