Immutable
Rust 变量默认是 immutable (不可变的):不能对 不可变变量 进行二次赋值
let x = 5;
结合 mut
定义 可变变量:
let mut x = 5;
x = 6; // 二次赋值的类型必须与首次赋值一致
Shadowing
Rust 中的 Shadowing (部分中文文档翻译成“隐藏”) 实际上就是变量名称的再利用:
let x = 1;
println!("x={x}");
let x = x + 2;
println!("x={x}");
{
let x = x * 2;
println!("x={x}");
}
let x = x + 1;
println!("x={x}");
当一个变量名称(这里是 x
)被多次使用时,在接下来的作用域中,后定义的变量会覆盖(遮盖、隐藏)掉先定义的变量。
每次定义的变量实际上是一个新变量,它与之前的同名变量仅仅是名字相同而已。
故再次定义时变量的类型可以发生改变,这与 可变变量 两个概念。
可变变量在二次赋值之后,变量的内存地址和类型都未发生改变,仅仅是指向内存中存的值变了。
Constant
常量值允许简单的计算表达式,在编译时它将被计算为最终的常量值:
const SECONDS_PER_HOUR = 1 * 60 * 60;
评论区