在Rust中,为了改变可变变量的值,在下面的示例代码中,
输出结果是
let x = 12
和x = 12
有什么区别?fn main() {
let mut x: i32 = 8;
{
println!("{}", x);
let x = 12; // what if change to x = 12
println!("{}", x);
}
println!("{}", x);
let x = 42;
println!("{}", x);
}
输出结果是
8, 12, 8, 42
。 如果我将let x = 12
更改为x = 12
...fn main() {
let mut x: i32 = 8;
{
println!("{}", x);
x = 12;
println!("{}", x);
}
println!("{}", x);
let x = 42;
println!("{}", x);
}
输出结果是8, 12, 12, 42
。
我理解Rust使用let来进行变量绑定,因此let x = 12
是一个变量重新绑定,且绑定只在作用域内有效。但是如何解释x = 12
的功能及其相应的作用域?这是否是一种类型的变量绑定?