变量的可变性
在rust中,变量声明之后,是不可变量,不能再次赋值。变量声明之后,类型就固定了。和C语言一样。
fn main(){
let x = 5; //这里x是一个int32类型
println!("The value of x is : {}", x);
x = 6; //此处会报编译错误
println!("The value of x is : {}", x);
}
在定义中加入mut关键字,使变量可变。
fn main(){
let mut x = 5; //此时x是一个可以改变的值
println!("The value of x is : {}", x);
x = 6;
println!("The value of x is : {}", x);
}
变量与常量的区别
-
使用const关键字声明常量而不是用let关键字声明,常量是不会改变的,不能使用mut关键字。
-
常量命名必须全部是大写。
-
常量必须标注类型
const MAX_POINTS:u32 = 100;
重影(Shadowing)
rust中,允许重复声明变量,一个变量可以声明多次。
fn main(){
let x = 5;
println!("{}", x); //x值为5
let x = x + 1;
println!("{}", x); //x值为6
let x = x * 2;
println!("{}", x); //x值为12
}
Shadowing和mut是不一样的,使用mut关键字的变量,值可以改变,但类型是固定的。而Shadowing不仅允许值不同,还允许类型不同。例如
fn main(){
let x = "aaaa";
let x = 5;
let x = 1.1;
}