Cou*_*ero 4 pattern-matching rust
我有一个枚举:
enum T {
A(String),
}
Run Code Online (Sandbox Code Playgroud)
我想匹配此枚举的变量,但此代码不起作用:
match t {
T::A("a") => println!("a"),
T::A("b") => println!("b"),
_ => println!("something else"),
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以做到这一点,但在我看来它太冗长了:
match t {
T::A(value) => match value.as_ref() {
"a" => println!("a"),
"b" => println!("b"),
_ => println!("something else"),
},
}
Run Code Online (Sandbox Code Playgroud)
有没有更短的方法来做到这一点?
我认为唯一的另一种方法是使用match guard,但这与您的嵌套匹配版本一样冗长。
match t {
T::A(ref value) if value == "a" => println!("a"),
T::A(ref value) if value == "b" => println!("b"),
_ => println!("something else"),
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1135 次 |
| 最近记录: |