变量绑定

let a = 10;// 不可变
let mut b = 10;// 可变 mutable
 
let _c = 10;// 让 rust 编译器不要警告该变量

变量解构

let (a, mut b): (bool,bool) = (true, false);// a = true,不可变; b = false,可变
 
let (a, b, c, d, e);
(a, b) = (1, 2);
 
// _ 代表匹配一个值,但是我们不关心具体的值是什么,因此没有使用一个变量名而是使用了 _
// .. 表示忽略多个值
[c, .., d, _] = [1, 2, 3, 4, 5];

变量遮蔽

Rust 允许声明相同的变量名,在后面声明的变量会遮蔽掉前面声明的。

fn main() {
    let x = 5;
    let x = x + 1;
    {
        let x = x * 2;
        println!("{}", x); // 12
    }
    println!("{}", x); // 6
}

常量

常量使用 const 关键字而不是 let 关键字来声明

const MAX_POINTS: u32 = 100_000;