← SEARCHABLE ARCHIVE
Rust · 2026-07-19

从 Rust 基础到掌握 — 第 2 集

学习变量、类型、函数和模式匹配

INTERACTIVE READING MODE →

该博客上撰写的文章是出于教学目的而创建的。 另外,文章中的信息可能不正确,请谨慎。

Rust 在编译阶段检查变量类型和值的有效范围。 如果您了解基本语法、表达式和模式匹配,后续的专有代码将变得更容易阅读。

变量和类型

let level: u32 = 10;
let speed = 4.5_f32;
let alive = true;

let mut health = 100;
health -= 20;

变量默认不可更改,只有添加mut才能更改值。 当不变性是默认值时,找到哪些代码正在改变状态就变得更容易。

整数类型具有固定的大小和符号。 当转换为其他数值类型时,您必须使用 as 或转换函数来表明您的意图。

表达

let state = if health <= 0 {
    "Dead"
} else if health < 30 {
    "Danger"
} else {
    "Normal"
};

Rust 的 if 可以用作返回值的表达式。 每个分支返回的类型必须相同。

如果没有分号,则块中的最后一个表达式将成为返回值。 如果加上分号,它就变成没有值的单位类型。

匹配并重复

let reward = match rank {
    'S' => 1000,
    'A' => 500,
    _ => 100,
};

let mut total = 0;
for damage in [10, 20, 15] {
    total += damage;
}

匹配检查以确保不会遗漏任何可能的情况。 _ 是先前未处理的剩余模式。

功能

fn calculate_damage(attack: i32, defense: i32) -> i32 {
    (attack - defense).max(1)
}

指定参数和返回类型,最后一个表达式就是结果。 函数不仅仅是减少代码的工具,而且是在输入、输出和责任之间创建边界的工具。