diff --git a/4.variables/Cargo.toml b/4.variables/Cargo.toml new file mode 100644 index 0000000..f1cad76 --- /dev/null +++ b/4.variables/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "variables" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/4.variables/src/main.rs b/4.variables/src/main.rs new file mode 100644 index 0000000..e5b5d9f --- /dev/null +++ b/4.variables/src/main.rs @@ -0,0 +1,28 @@ +// 常量必须声明类型 可在任意作用域中声明 +// 命名格式 大写字母 + 下划线分隔 +const CONST_X: u32 = 100_000; + +fn main() { + println!("常量 CONST_X 的 值为 {}", CONST_X); + + // 默认为 不可变变量 + // let x = 5; + + // mut 关键字声明为可变变量 + let mut x = 5; + println!("变量 x 的值为 {}", x); + + x = 6; + println!("变量 x 的值为 {}", x); + + // shadow 隐藏 + // 可以使用相同的名字声明新的变量, 新的变量就会隐藏之前声明的同名变量 + // 若使用 let 声明新的同名变量, 那么新的变量也是不可变的 + // 使用 let 声明新的变量, 它的类型可以与之前不同 + let y = 2; + println!("变量 y 的值为 {}",y); + + let y = (y * 2).to_string(); + println!("变量 y 的值为 {}",y); + +}