语法结构:┌──────────────────────────────────────┐│ let x = 值1; ││ let x = 值2; // 遮蔽旧的 x ││ ││ let x = 5; → x 是 i32 ││ let x = "hi"; → 新 x 是 &str │└──────────────────────────────────────┘
1 2 3 4 5 6 7 8
为什么用它?
rust
// 没有:需要不同变量名,代码冗余let x = 5;let x_transformed = x + 1;let x_final = x_transformed * 2;// 有:复用变量名,表达转换过程let x = 5;let x = x + 1; // 新 x 遮蔽旧 xlet x = x * 2; // 再次遮蔽println!("x = {}", x); // 12
变量与注释
> 学习 Rust 的变量声明语法,以及单行注释、块注释与文档注释的适用场景。
变量与赋值
let 绑定
概念名称:
let用于声明变量绑定,Rust 默认变量不可变。2
3
4
5
6
7
8
9
10
11
12
为什么用它?
2
3
4
5
6
7
8
最简示例
2
3
4
详细示例
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
关键代码说明:
let x = 5let mut z = 300mut显式标记可修改my_variable变量类型推断
概念名称: Rust 编译器自动推断变量类型,减少冗余标注。
2
3
4
5
6
7
8
9
最简示例
2
3
4
详细示例
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
关键代码说明:
let x = 42let y = 3.14let big: i64 = 42常量与静态变量
概念名称:
const是编译时常量,static是全局静态变量。2
3
4
5
6
7
8
最简示例
2
3
4
5
详细示例
2
3
4
5
6
7
8
9
10
11
12
关键代码说明:
const MAX_POINTS: u32100_000static LANGUAGE变量遮蔽(Shadowing)
概念名称: 用
let重新声明同名变量,遮蔽旧值,可改变类型。2
3
4
5
6
7
8
为什么用它?
2
3
4
5
6
7
8
9
10
最简示例
2
3
4
5
详细示例
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
关键代码说明:
let x = x + 1spaces.len()let mut count注释
概念名称: Rust 支持单行注释
//、多行注释/* */和文档注释///。2
3
4
5
6
7
最简示例
2
3
4
5
详细示例
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
关键代码说明:
///* *////cargo doc生成 API 文档//!小结
let声明变量,默认不可变;let mut可变//单行注释,/* */块注释///文档注释用于函数、结构体等顶层条目,不用于局部变量练习题
详见:练习题