官术网_书友最值得收藏!

3.3 match模式匹配

在2.3.4節(jié)中,我們使用了match模式匹配來處理枚舉類型的值。match模式匹配也可用于流程控制,檢查當(dāng)前值是否匹配一系列模式中的某一個。模式可由字面值、變量、通配符和其他內(nèi)容構(gòu)成。每一個模式都是一個分支,程序根據(jù)匹配的模式執(zhí)行相應(yīng)的代碼。

Rust要求match模式匹配是窮盡式的,即必須窮舉所有的可能性,否則會導(dǎo)致程序錯誤。有一個處理方法是將通配符“_”放置在其他分支之后,通配符“_”會匹配上面沒有指定的所有可能的模式。代碼清單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.
主站蜘蛛池模板: 利川市| 雷州市| 水富县| 宜丰县| 临沧市| 博乐市| 静安区| 太康县| 陆河县| 丹江口市| 蒙城县| 泾阳县| 千阳县| 永昌县| 华阴市| 兰考县| 伊春市| 盘锦市| 阜城县| 叙永县| 罗江县| 界首市| 霍州市| 六安市| 林周县| 香港| 屯门区| 陆川县| 罗平县| 宣武区| 衡东县| 平凉市| 东海县| 云和县| 玉龙| 开封县| 资中县| 辽宁省| 仁怀市| 洮南市| 沂南县|