从 Rust 基础到掌握 — 第 2 集
学习变量、类型、函数和模式匹配
该博客上撰写的文章是出于教学目的而创建的。 另外,文章中的信息可能不正确,请谨慎。
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)
}
指定参数和返回类型,最后一个表达式就是结果。 函数不仅仅是减少代码的工具,而且是在输入、输出和责任之间创建边界的工具。