UP | HOME

变量绑定与解构

rust 中变量赋值使用绑定这个概念:

let a = "hello world"  

变量默认不可改变,除非使用 mut 字段修饰:

let mut a = 123;   

rust编译器默认会警告未被使用的变量,可以在变量前加下划线忽略警告:

fn main() {
    let _x = 1; // 这里忽略了x未使用的警告
    let y = 3;
    println!("the value of y is {}", y)
}  

或者使用属性宏:

#[allow(unused_variables)]
fn main() {
    let x = 1; // 这里忽略了x未使用的警告
    let y = 3;
    println!("the value of y is {}", y)
}

let 表达式也可以用于复杂变量的解构:

fn main() {
    let (a, mut b): (bool,bool) = (true, false);
    // a = true,不可变; b = false,可变
    println!("a = {:?}, b = {:?}", a, b);

    b = true;
    assert_eq!(a, b);
}

rust中变量和常量的区别是:常量自程序运行始终都不会改变,编译完成后都不会发生改变;常量使用 const 修饰

const MAX_POINTS: u32 = 100_000; // 默认常量的命名都是大写

rust中可以使用同名变量,后定义的变量会覆盖之前定义的变量:

fn main() {
    let x = 5;
    // 在main函数的作用域内对之前的x进行遮蔽
    let x = x + 1;

    {
        // 在当前的花括号作用域内,对之前的x进行遮蔽
        let x = x * 2;
        println!("The value of x in the inner scope is: {}", x);
    }

    println!("The value of x is: {}", x);
}

第二个 let 生成了一个新的变量只是和前面的变量重名(这涉及到内存对象的再分配,而 mut 声明的对象修改同一内存上的值, 性能更好)

Created: 2026-05-28 Thu 02:29

Validate