8个版本
使用旧Rust 2015
0.2.5 | 2017年7月26日 |
---|---|
0.2.4 | 2017年7月26日 |
0.1.1 | 2017年7月25日 |
2670 在 Rust模式 中
10KB
77 行
match_all
为Rust提供了match_all!
宏
此宏提供了与普通match
语句类似的功能,但允许执行多个表达式块。
格式
match_all!{ value,
IfNoMatch => expr,
pat | pat ... => expr,
...
}
value
:要匹配的表达式。IfNoMatch
:如果其他模式都没有匹配,则执行此表达式后的表达式。此分支是可选的。pat | pat ...
:这是要检查的模式组合。如果其中任何一个与值匹配,则执行相应的表达式。检查完一组模式后,将检查下一组模式,直到检查完所有组。如果没有匹配,则执行IfNoMatch
表达式。
示例一
let value = Some(4);
match_all!{ value,
None => println!("Hi"),
Some(3) | Some(4) => println!("Hello"),
Some(4) | Some(5) => println!("Howdy")
}
这将打印
Hello
Howdy
示例二
let value = Some(20);
match_all!{ value,
IfNoMatch => println!("No Match"),
0...4 => println!("0 through 4")
};
这将打印
No Match
它打印这个,因为它使用了特殊的IfNoMatch
表达式来提供一个仅在没有其他表达式匹配时才匹配的表达式。