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);
}