match
Rustはmatch
を用いて、C言語におけるswitch
のようなパターンマッチングを行うことができます。マッチする最初のアームが評価され、取りうるすべての値はカバーされていなければなりません。
fn main() { let number = 13; // TODO ^ `number` の値を変えて試してみましょう。 println!("Tell me about {}", number); match number { // 単一の値とのマッチをチェック。 1 => println!("One!"), // いくつかの値とのマッチをチェック。 2 | 3 | 5 | 7 | 11 => println!("This is a prime"), // TODO ^ 素数のリストに13を加えてみましょう。 // 特定の範囲の値とのマッチをチェック。 13..=19 => println!("A teen"), // その他の場合の処理 _ => println!("Ain't special"), // TODO ^ この全てをキャッチするアームをコメントアウトしてみましょう。 } let boolean = true; // マッチは式でもあります。 let binary = match boolean { // マッチは全ての可能な値をカバーしなくてはなりません。 false => 0, true => 1, // TODO ^ 試しに片方をコメントアウトしてみましょう。 }; println!("{} -> {}", boolean, binary); }