###   Rust 从入门到摔门而出门 (一) 变量声明
####   变量声明
fn main() { // 声明变量 x = 5 let x = 5; // 修改变量x,此处会报错,变量默认是不可改变的。 // x = 6; println!("The value of x is: {x}"); // 声明可变变量, 在变量名前添加 mut 来使它变成可变变量。 let mut y = 10; y = 11; println!("The value of y is: {y}"); }
#### 常量
声明常量,值不可被改变。使用 const 关键字声明,不允许使用 mut,必须注明数据值类型
fn main() { // 声明 THREE_HOURS_IN_SECONDS 设置值限制 32比特位的 整数类型 const THREE_HOURS_IN_SECONDS: u32 = 60 * 60 * 3 println!("The value of THREE_HOURS_IN_SECONDS is: {THREE_HOURS_IN_SECONDS}"); }
####  隐藏
在rust 中可以变量名相同,后面的变量名会覆盖前面的变量名.
fn main() { let x = 10; println!("1.输出 x:{x}"); // 10 let x = x + 1; { let x = x * 2; println!("2.输出 x:{x}"); // 22 } println!("3.输出 x:{x}"); // 11 }
let 重新赋值 和 使用 mut 有所不同。第一个y是字符串类型,但是 y.len() 是数字类型,所以会报错提示不能修改变量的数据类型。
fn main() { let x = "123"; println!("4.输出 x:{x}"); //123 let x = x.len(); println!("5.输出 x:{x}"); // 3 let mut y = "123456"; y= y.len(); //error[E0308]: mismatched types expected `&str`, found `usize` }
let 声明的作用域,
fn main() { let mut x = 10; println!("1.输出 x:{x}"); // 10 { x = 2; println!("2.输出 x:{x}"); // 2 } { let x = 10; println!("3.输出 x:{x}"); // 10 } let x = x + 100; println!("4.输出 x:{x}"); // 102 }