假设我有一个这样的枚举:
enum C { A(i64, i64), B(i64), }
我想用默认值匹配它。有没有一种方法可以让我用默认值匹配多个手臂:
fn main() { let var = C::B(1); match var { C::A(v1, v2) | C::B(v1, v2 @ 0) => { assert_eq!((v1, v2), (1, 0)) } } }
k5hmc34c1#
你可以匹配元组(var, v2_default),而不仅仅是var:
(var, v2_default)
match (var, 0) { (C::A(v1, v2), _) | (C::B(v1), v2) => { println!("{} {}", v1, v2); } }
1条答案
按热度按时间k5hmc34c1#
你可以匹配元组
(var, v2_default)
,而不仅仅是var: