上QQ阅读APP看书,第一时间看更新
3.3 match模式匹配
在2.3.4节中,我们使用了match模式匹配来处理枚举类型的值。match模式匹配也可用于流程控制,检查当前值是否匹配一系列模式中的某一个。模式可由字面值、变量、通配符和其他内容构成。每一个模式都是一个分支,程序根据匹配的模式执行相应的代码。
Rust要求match模式匹配是穷尽式的,即必须穷举所有的可能性,否则会导致程序错误。有一个处理方法是将通配符“_”放置在其他分支之后,通配符“_”会匹配上面没有指定的所有可能的模式。代码清单3-5中,第12行代码使用通配符处理变量age值小于0或大于100的情况。
代码清单3-5 match模式匹配
1 fn main() { 2 let age = 6; 3 4 match age { 5 0 => println!("You are a baby."), 6 1..=2 => println!("You are a toddler."), 7 3..=4 => println!("You are a preschooler."), 8 5..=9 => println!("You are a schoolchild."), 9 10..=11 => println!("You are a preteen."), 10 12..=17 => println!("You are a teenager."), 11 18..=100 => println!("You are an adult."), 12 _ => (), 13 } 14 } 15 16 // You are a schoolchild.