【发布时间】:2016-07-12 19:34:32
【问题描述】:
考虑以下
enum FooBar {
Bar,
Foo,
}
struct Whatever {
f_type: FooBar,
}
let what = Whatever { f_type: FooBar::Bar };
我知道这行得通:
let answer: bool = match what {
Whatever { f_type: FooBar::Bar } => true,
_ => false,
};
println!("{:?}", answer); // true
有没有办法让它工作,以便使用bar_match 比较值而不是绑定到当前值?
let bar_match = FooBar::Bar;
let answer: bool = match what {
Whatever { f_type: bar_match } => true,
_ => false,
};
println!("{:?}", answer); // true
我是 Rust 菜鸟,但我在网上的任何地方都找不到这个问题的答案。
【问题讨论】:
-
仅供参考,
: bool是多余的;类型由matcharm 的值推断。
标签: enums pattern-matching rust