Skip to content

实战总结

> 综合运用本章知识,通过实战练习巩固变量声明、可变性与常量的核心概念。

完整示例

示例 1:计数器

rust
fn main() {
    // 不可变常量
    const MAX_COUNT: u32 = 10;

    // 可变计数器
    let mut count = 0;

    while count < MAX_COUNT {
        count += 1;
        println!("计数:{}", count);
    }

    println!("完成!");
}
▶ Run

示例 2:类型转换

rust
fn 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);
}
▶ Run

示例 3:配置管理

rust
// 全局常量
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);
    }
}
▶ Run

常见错误

错误 1:修改不可变变量

rust
fn main() {
    let x = 5;
    // x = 6;  // ❌ 错误:不能修改不可变变量

    // ✅ 修复
    let mut x = 5;
    x = 6;
}
▶ Run

错误 2:未初始化使用

rust
fn main() {
    // let x: i32;
    // println!("{}", x);  // ❌ 错误:使用未初始化变量

    // ✅ 修复
    let x: i32 = 0;
    println!("{}", x);
}
▶ Run

错误 3:常量缺少类型

rust
// const MISSING_TYPE = 10;  // ❌ 错误:常量需要类型标注

// ✅ 修复
const HAS_TYPE: i32 = 10;
▶ Run

错误 4:可变静态变量不安全访问

rust
static mut DATA: i32 = 0;

fn main() {
    // DATA = 1;  // ❌ 错误:需要 unsafe

    // ✅ 修复
    unsafe {
        DATA = 1;
    }
}
▶ Run

练习

练习 1:变量声明

声明以下变量:

  • 一个不可变的整数
  • 一个可变的浮点数
  • 一个常量字符串
  • 一个静态布尔值

练习 2:类型转换

rust
// 完成以下代码
let input = "42";
let num: ___ = input.parse().unwrap();
let doubled = num * 2;
println!("结果:{}", doubled);
▶ Run

练习 3:遮蔽练习

使用变量遮蔽将一个字符串转换为它的长度,然后将长度乘以 2。

小结

本章我们学习了:

  • ✅ 使用 let 声明变量
  • ✅ 可变性(mut)的使用
  • ✅ 常量(const)与静态变量(static)
  • ✅ 变量遮蔽(Shadowing)
  • ✅ 类型推断规则
  • ✅ 常见错误及解决方案

关键要点

概念关键字特点
变量let默认不可变
可变变量let mut可以重新赋值
常量const必须标注类型,全局有效
静态变量static有固定内存地址

第 04 章:数据类型

练习题

详见:练习题