fnmain() { letmut x = 5; println!("The value of x is: {x}"); // 5 x = 6; println!("The value of x is: {x}"); // 6 }
常量
不允许改变的值
不能 用 mut 修饰 总是不可变
常量只能被设置为常量表达式,而不可以是其他任何只能在运行时计算出的值
1 2 3 4
fnmain() { const THREE_HOURS_IN_SECONDS: u32 = 60 * 60 * 3; println!("Three hours in seconds is: {THREE_HOURS_IN_SECONDS}"); // 10800 }
遮蔽
我们可以定义一个与之前变量同名的新变量, 编译器看的是最后一个变量 前面定义的同名变量被遮蔽了
遮蔽与 mut 的区别
遮蔽 其实是创建了一个新变量 只是名字的复用
遮蔽 可以改变变量的类型 mut 不能改变变量的类型
1 2 3 4 5 6 7 8 9
fnmain() { letx = 5; letx = x + 1; { letx = x * 2; println!("The value of x in the inner scope is: {x}"); // 12 } println!("The value of x is: {x}"); // 6 }