Skip to content

完整示例

> 通过一个完整的 Rust 程序综合练习基础语法,理解代码的整体结构。

完整示例程序

示例 1:个人信息卡片

概念名称: 综合运用变量、格式化输出和字符串对齐。

语法结构:
┌──────────────────────────────────────┐
│  println!("格式串", 参数...);         │
│           ↑        ↑                  │
│           |        变量               │
│           格式化占位符                │
│                                       │
│  {: <12}   → 左对齐,宽度 12          │
│  {:.1}     → 保留 1 位小数            │
└──────────────────────────────────────┘

最简示例

rust
fn main() {
    let name = "张三";
    let age = 25;
    println!("姓名:{},年龄:{}", name, age);
}
▶ Run

详细示例

rust
fn main() {
    // 定义变量
    let name = "张三";
    let age = 25;
    let height = 175.5;  // 厘米
    let city = "北京";

    // 打印个人信息
    println!("╔════════════════════════╗");
    println!("║     个人信息卡片       ║");
    println!("╠════════════════════════╣");
    println!("║ 姓名:{: <12} ║", name);
    println!("║ 年龄:{: <12} ║", age);
    println!("║ 身高:{: <12.1} ║", height);
    println!("║ 城市:{: <12} ║", city);
    println!("╚════════════════════════╝");
}
▶ Run

关键代码说明:

代码含义为什么这样写
{: <12}左对齐,宽度 12表格对齐,美观输出
{:.1}保留 1 位小数身高精确到 0.1cm
175.5浮点数身高需要小数,用 f64

示例 2:简单计算器

rust
fn main() {
    let a = 10;
    let b = 3;

    println!("简单计算器");
    println!("a = {}, b = {}", a, b);
    println!("─────────────────");

    // 基本运算
    println!("a + b = {}", a + b);
    println!("a - b = {}", a - b);
    println!("a * b = {}", a * b);
    println!("a / b = {}", a / b);      // 整数除法:3
    println!("a % b = {}", a % b);      // 取余:1

    // 浮点数运算
    let x = 10.0;
    let y = 3.0;
    println!("\n浮点数运算");
    println!("x / y = {:.4}", x / y);   // 3.3333

    // 位运算
    println!("\n位运算");
    println!("a << 1 = {}", a << 1);    // 左移:20
    println!("a >> 1 = {}", a >> 1);    // 右移:5
}
▶ Run

示例 3:温度转换器

rust
fn main() {
    println!("温度转换器");
    println!("────────────────────────────────");
    println!("{:^10} | {:^10} | {:^10}", "摄氏度", "华氏度", "开尔文");
    println!("{:-^46}", "");

    // 打印温度表
    for celsius in 0..=100 {
        if celsius % 10 == 0 {
            let fahrenheit = celsius as f64 * 9.0 / 5.0 + 32.0;
            let kelvin = celsius as f64 + 273.15;
            println!("{:^10} | {:^10.1} | {:^10.2}",
                     celsius, fahrenheit, kelvin);
        }
    }
}
▶ Run

关键代码说明:

代码含义为什么这样写
celsius as f64类型转换整数转浮点进行浮点运算
0..=100闭区间范围包含 100,.. 不包含
{:^10}居中,宽度 10表格列对齐

动手实践

练习 1:格式化输出

创建一个程序,打印以下图案:

    *
   ***
  *****
 *******
*********
点击查看答案
rust
fn main() {
    for i in 1..=5 {
        let spaces = " ".repeat(5 - i);
        let stars = "*".repeat(2 * i - 1);
        println!("{}{}", spaces, stars);
    }
}
▶ Run

练习 2:变量实验

创建一个程序,尝试以下操作:

rust
fn main() {
    // 1. 创建一个不可变变量,尝试修改它(会报错)
    let x = 10;
    // x = 20;  // 取消注释看看错误

    // 2. 创建一个可变变量,修改它
    let mut y = 10;
    y = 20;
    println!("y = {}", y);

    // 3. 使用遮蔽改变类型
    let s = "hello";
    let s = s.len();
    println!("s = {}", s);

    // 4. 使用常量
    const MAX: i32 = 100;
    println!("MAX = {}", MAX);
}
▶ Run

练习 3:个人信息生成器

创建一个程序,输出你的个人信息,包括:

  • 姓名
  • 年龄
  • 爱好
  • 学习目标

使用不同的格式化选项。


小结

  • 完整程序包含:use 导入、变量声明、函数定义、主逻辑
  • use 引入标准库模块减少路径冗余
  • 合理的代码组织和注释使程序易读易维护

练习题

详见:练习题