Rust 基础类型与模式匹配
目录
Rust 的类型系统很务实:标量类型够用,复合类型灵活,而 enum + match 是它表达「多种可能」的利器。
标量类型
let i: i32 = -10; // 有符号整数
let u: u8 = 255; // 无符号(0~255)
let f: f64 = 3.14; // 浮点
let b: bool = true; // 布尔
let c: char = 'R'; // 字符(Unicode,4 字节)
复合类型
let tup: (i32, f64, char) = (500, 6.4, 'z'); // 元组
let (a, _b, c) = tup; // 解构
let arr = [1, 2, 3, 4, 5]; // 数组(定长)
let first = arr[0];枚举 enum
枚举把「一组相关的可能值」打包:
enum Message {
Quit,
Move { x: i32, y: i32 },
Write(String),
}模式匹配 match
用 match 穷尽处理每种情况,编译器强制你覆盖全部分支:
fn handle(msg: Message) {
match msg {
Message::Quit => println!("退出"),
Message::Move { x, y } => println!("移动到 {},{}", x, y),
Message::Write(text) => println!("文本: {}", text),
}
}if let 是只关心一种情况的简写:
if let Message::Write(t) = msg {
println!("只处理写消息: {}", t);
}小结
- 元组/数组是轻量复合类型;要变长用
Vec(下章提)。 enum比别的语言更强大,可携带数据。match穷尽匹配,少写分支编译器不答应。