複数の値とのマッチング
CoddyのRustジャーニー「論理とフロー」セクションの一部。レッスン 2/66。
同じコードを実行すべき、複数の異なる値にマッチさせる必要がある場合があります。値ごとに個別のアームを書く代わりに、Rustでは|(OR)演算子を使って、1つのアーム内で複数のパターンを組み合わせることができます。
1つのアームで複数の値にマッチさせる方法は次のとおりです。
let month = 12;
match month {
12 | 1 | 2 => println!("Winter"),
3 | 4 | 5 => println!("Spring"),
6 | 7 | 8 => println!("Summer"),
9 | 10 | 11 => println!("Fall"),
_ => println!("Invalid month"),
}| 演算子は英語の「OR」のように機能します。値が | で区切られたパターンのいずれかに一致すると、そのアームが実行されます。これにより、すべて同じ処理を行うアームを個別に用意するよりも、コードがはるかにすっきりします。
チャレンジ
簡単曜日を表す日番号(1~7)が入力として与えられます。入力を読み取り、整数に変換し、match 式と | 演算子を使用して、平日か週末かを出力してください。
要件:
- 曜日が
1、2、3、4、または5の場合は、"Weekday"を出力する - 曜日が
6または7の場合は、"Weekend"を出力する - その他の数値の場合は、
"Invalid day"を出力する
入力: 曜日番号を表す単一の整数
出力: "Weekday"、"Weekend"、または "Invalid day" のいずれかを出力する
自分で試してみよう
use std::io;
fn main() {
// 入力を読み取る
let mut input = String::new();
io::stdin().read_line(&mut input).expect("Failed to read line");
let day: i32 = input.trim().parse().expect("Please enter a number");
// TODO: match式と|演算子を使って以下にコードを書いてください
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
論理とフローのすべてのレッスン
自分で練習してみよう: Rustオンラインコンパイラ