我有一个枚举:
pub enum Enum1 {
A(String),
B(i64),
C(f64)
}
如何对A进行模式匹配?也就是说,我想得到它的String值。我试过这个:
match optionMyEnum {
Some(A(x: String)) => ...
并且有很多编译错误。
答案 0 :(得分:5)
The Rust Programming Language有一整个section on matching。我高度鼓励您阅读该部分(以及整本书)。这篇文档花了很多时间和精力。
您只需指定要绑定的名称即可。没有必要写出类型:
pub enum Enum {
A(String),
B(i64),
C(f64),
}
fn main() {
let val = Enum::A("hello".to_string());
match val {
Enum::A(x) => println!("{}", x),
_ => println!("other"),
}
}
在许多情况下,您需要将引用绑定到值:
Enum::A(ref x) => println!("{}", x),