Menu
Coddy logo textTech

match 文

CoddyのRustジャーニー「基礎」セクションの一部。レッスン 26/75。

match 式を使用すると、値を一連のパターンと比較し、どのパターンが一致するかに基づいてコードを実行できます。

match 式の基本的な構造は次のとおりです。

match variable {
	pattern1 => expression1,
	pattern2 => expression2,
	// ... その他のパターン
	_ => default_expression,
}

matchキーワードの後には、テストしたい値を置きます。

match の各アームは、パターンの後に => と実行するコードが続く構成になっています。

アンダースコア _ は、他のパターンで一致しなかったものすべてに一致するデフォルトのケースです。

例を見てみましょう:

let day = 3;
let day_name = match day {
	1 => "Monday",
	2 => "Tuesday",
	3 => "Wednesday",
	// ... 他のパターン、
	_ => "Invalid day",
};

アーム内で複数行のコードを使用する場合は、ブロックを使います:

let day = 3;
let day_name = match day {
	1 => {
		println!("First day of the week!");
		"Monday"
	},
	2 => "Tuesday",
	// ... その他のケース
	_ => "Invalid day",
};

|を使用して複数のパターンを照合できます:

let day = 3;
let day_type = match day {
	1 | 2 | 3 | 4 | 5 => "Weekday",
	6 | 7 => "Weekend",
	_ => "Invalid day",
};

Rust の match 式は網羅的でなければならず、考えられるすべての値をカバーする必要があります。コンパイラーがこれをチェックしてくれます。

challenge icon

チャレンジ

初心者

月番号(1はJanuary、2はFebruaryなど)を受け取り、その月が属する季節を出力するプログラムを作成してください。ロジックにはmatch文を使用してください。

季節と対応する月は次のとおりです:

  • Winter:December(12)、January(1)、February(2)
  • Spring:March(3)、April(4)、May(5)
  • Summer:June(6)、July(7)、August(8)
  • Autumn:September(9)、October(10)、November(11)

自分で試してみよう

use std::io;

fn main() {
    let mut input = String::new();
    io::stdin().read_line(&mut input).unwrap();
    let month: i32 = input.trim().parse().unwrap();
    // 以下にコードを書いてください
    let season = 

    // 以下の行を変更しないでください
    println!("status = {}", season);
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: Rustオンラインコンパイラ