Rust枚举
枚举
-
枚举可以通过列举某个类型所有可能的变体来定义这个类型
-
定义:
enum 枚举 {
变体,
变体,
}
- 创建变体:
let 变体名 = 枚举::变体;
- 结构体也可以作为变体,在
《Rust 程序设计语言》中的例子是这样的:
enum IpAddr {
v4(u8, u8, u8, u8),
v6(String),
}
let home = IpAddr::v4(127, 0, 0, 1);
let loopback = IpAddr::v6(String::from("::1"));
enum IpAddr {
v4,
v6,
}
struct IpAddr {
kind: IpAddrKind,
address: String,
}
let home = IpAddr {
kind: IpAddrKind::v4,
address: String::from("127.0.0.1"),
}
Option枚举
enum Option<T> {
None,
Some<T>,
}
-
<T>是一个泛型类型的参数 -
Some()类似一个盒子
match枚举
- 定义
match 匹配值 {
变体 => //,
变体 => //,
_ => //, // 如果匹配是无尽的或者不需要的,可以用`_`来匹配
}
if let控制流
-
if let与match工作方式一样,是match的一个语法糖 -
匹配当前某个模式而忽略其他模式
if let 模式 = 匹配值 {
//
} else {
// 可以在if let中包含一个else处理不匹配的情况
}