Skip to content

01.变量和可变性

变量的声明

在 rust 中,变量通过 let 关键字声明,如:

rust
let x = 32;

可变性

在 rust 中,变量默认是不可变的,即声明后不可修改,如不可以:

rust
let x = 32;
x = 64

要使得变量是可变的,需要在声明时使用 mut 关键字:

rust
let mut x = 32;
x = 64;

常量

常量使用 const 关键字声明。

特性:

  • 常量不可变,也不能使用 mut 关键字声明
  • 常量的类型必须被标注,如 u32
  • 常量可以在包括全局作用域内的任何作用域内声明

命名规范:

常量使用全大写字母进行命名,如果需要分隔,使用下划线分隔。

例子:

rust
const MAX_POINTS: u32 = 100_100;

隐藏(shadowing)

对于声明的默认不可变变量,如果后续再次声明(而不是重新赋值)同名变量,则之前声明的这个变量将被隐藏。

rust
fn main() {
    // 隐藏( shadowing )
    let x = 10;
    let x = 5;
    println!("x is {}", x);
}

输出:x is 5

且再次声明的变量类型可以与之前不同:

rust
fn main() {
    // 隐藏( shadowing )
    let x = 10;
    let x = 5;
    let x = " ";
    println!("x is {}", x);
}

输出:x is