实战总结
> 综合运用本章知识,通过实战练习巩固变量声明、可变性与常量的核心概念。
完整示例
示例 1:计数器
rust
▶ Runfn main() {
// 不可变常量
const MAX_COUNT: u32 = 10;
// 可变计数器
let mut count = 0;
while count < MAX_COUNT {
count += 1;
println!("计数:{}", count);
}
println!("完成!");
}示例 2:类型转换
rust
▶ Runfn main() {
// 字符串转数字
let input = "100";
let num: i32 = input.parse().unwrap();
// 数字运算
let mut result = num * 2;
result = result + 50;
// 转回字符串
let output = result.to_string();
println!("结果:{}", output);
}示例 3:配置管理
rust
▶ Run// 全局常量
const DEBUG_MODE: bool = true;
const VERSION: &str = "1.0.0";
// 全局静态变量
static mut REQUEST_COUNT: u32 = 0;
fn main() {
if DEBUG_MODE {
println!("调试模式开启");
println!("版本:{}", VERSION);
}
// 更新计数
unsafe {
REQUEST_COUNT += 1;
println!("请求次数:{}", REQUEST_COUNT);
}
}常见错误
错误 1:修改不可变变量
rust
▶ Runfn main() {
let x = 5;
// x = 6; // ❌ 错误:不能修改不可变变量
// ✅ 修复
let mut x = 5;
x = 6;
}错误 2:未初始化使用
rust
▶ Runfn main() {
// let x: i32;
// println!("{}", x); // ❌ 错误:使用未初始化变量
// ✅ 修复
let x: i32 = 0;
println!("{}", x);
}错误 3:常量缺少类型
rust
▶ Run// const MISSING_TYPE = 10; // ❌ 错误:常量需要类型标注
// ✅ 修复
const HAS_TYPE: i32 = 10;错误 4:可变静态变量不安全访问
rust
▶ Runstatic mut DATA: i32 = 0;
fn main() {
// DATA = 1; // ❌ 错误:需要 unsafe
// ✅ 修复
unsafe {
DATA = 1;
}
}练习
练习 1:变量声明
声明以下变量:
- 一个不可变的整数
- 一个可变的浮点数
- 一个常量字符串
- 一个静态布尔值
练习 2:类型转换
rust
▶ Run// 完成以下代码
let input = "42";
let num: ___ = input.parse().unwrap();
let doubled = num * 2;
println!("结果:{}", doubled);练习 3:遮蔽练习
使用变量遮蔽将一个字符串转换为它的长度,然后将长度乘以 2。
小结
本章我们学习了:
- ✅ 使用 let 声明变量
- ✅ 可变性(mut)的使用
- ✅ 常量(const)与静态变量(static)
- ✅ 变量遮蔽(Shadowing)
- ✅ 类型推断规则
- ✅ 常见错误及解决方案
关键要点
| 概念 | 关键字 | 特点 |
|---|---|---|
| 变量 | let | 默认不可变 |
| 可变变量 | let mut | 可以重新赋值 |
| 常量 | const | 必须标注类型,全局有效 |
| 静态变量 | static | 有固定内存地址 |
练习题
详见:练习题