rust - 匹配Rust中枚举数据内的字段?
问题描述
假设我有枚举:
enum Foo {
Bar {baz: Option<Buzz> },
}
struct Buzz {}
有没有办法匹配是否baz
存在None
?
如何匹配 Rust 中的结构字段?似乎不起作用,因为 Rust 解释
match foo {
Foo::Bar { baz: Buzz } => {
},
Foo::Bar { baz: None } => {
}
}
作为baz: Bar
重命名。
解决方案
的反面None
是Some
:
let foo = Foo::Bar{ baz: None };
match foo {
Foo::Bar{ baz: Some(_) } => println!("Bar with some"),
Foo::Bar{ baz: None } => println!("Bar with none"),
}