完整示例
> 通过一个完整的 Rust 程序综合练习基础语法,理解代码的整体结构。
完整示例程序
示例 1:个人信息卡片
概念名称: 综合运用变量、格式化输出和字符串对齐。
语法结构:
┌──────────────────────────────────────┐
│ println!("格式串", 参数...); │
│ ↑ ↑ │
│ | 变量 │
│ 格式化占位符 │
│ │
│ {: <12} → 左对齐,宽度 12 │
│ {:.1} → 保留 1 位小数 │
└──────────────────────────────────────┘最简示例
rust
▶ Runfn main() {
let name = "张三";
let age = 25;
println!("姓名:{},年龄:{}", name, age);
}详细示例
rust
▶ Runfn 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!("╚════════════════════════╝");
}关键代码说明:
| 代码 | 含义 | 为什么这样写 |
|---|---|---|
{: <12} | 左对齐,宽度 12 | 表格对齐,美观输出 |
{:.1} | 保留 1 位小数 | 身高精确到 0.1cm |
175.5 | 浮点数 | 身高需要小数,用 f64 |
示例 2:简单计算器
rust
▶ Runfn 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
}示例 3:温度转换器
rust
▶ Runfn 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);
}
}
}关键代码说明:
| 代码 | 含义 | 为什么这样写 |
|---|---|---|
celsius as f64 | 类型转换 | 整数转浮点进行浮点运算 |
0..=100 | 闭区间范围 | 包含 100,.. 不包含 |
{:^10} | 居中,宽度 10 | 表格列对齐 |
动手实践
练习 1:格式化输出
创建一个程序,打印以下图案:
*
***
*****
*******
*********点击查看答案
rust
▶ Runfn main() {
for i in 1..=5 {
let spaces = " ".repeat(5 - i);
let stars = "*".repeat(2 * i - 1);
println!("{}{}", spaces, stars);
}
}练习 2:变量实验
创建一个程序,尝试以下操作:
rust
▶ Runfn 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);
}练习 3:个人信息生成器
创建一个程序,输出你的个人信息,包括:
- 姓名
- 年龄
- 爱好
- 学习目标
使用不同的格式化选项。
小结
- 完整程序包含:
use导入、变量声明、函数定义、主逻辑 use引入标准库模块减少路径冗余- 合理的代码组织和注释使程序易读易维护
练习题
详见:练习题