
Rust matchとは 使い方と注意点について
Rustのmatch文はパターンマッチングを用いて条件分岐を行うために使います。
matchを使うと、値の種類や内容に基づいて異なるブロックのコードを実行することができます。
matchは、安全で柔軟なパターンマッチングを提供する一方、条件分岐が明確であることを保証します。
matchの使い方
基本的なmatch構文
matchを使って、特定のパターンに基づいて条件分岐を行います。
let number = 2;
match number {
1 => println!("One"),
2 => println!("Two"),
3 => println!("Three"),
_ => println!("Some other number"),
}
numberの値に基づいて異なるメッセージを表示します。
_は、全ての他のケースをカバーするために使用されます。
複数のパターンをマッチさせる:
matchでは複数のパターンを同時にマッチさせることができます。
let day = "Tuesday";
match day {
"Saturday" | "Sunday" => println!("Weekend"),
_ => println!("Weekday"),
}
"Saturday"または"Sunday"がマッチした場合に「Weekend」を表示し、それ以外の場合に「Weekday」を表示します。
構造体やタプルのパターンマッチング:
matchは構造体やタプルの内容に基づいて条件分岐することができます。
struct Point {
x: i32,
y: i32,
}
let point = Point { x: 1, y: 2 };
match point {
Point { x: 0, y: 0 } => println!("Origin"),
Point { x, y: 0 } => println!("On the x-axis at {}", x),
Point { x: 0, y } => println!("On the y-axis at {}", y),
Point { x, y } => println!("Point at ({}, {})", x, y),
}
Point構造体の内容に基づいて条件分岐し、異なるメッセージを表示しています。
Rustの案件を探すならクラウドワークス テック

・97%がリモートのお仕事
・週4日、週3日OKのお仕事多数
・登録社数74万件業界トップクラス
・2〜4週間程度でお仕事決定
・案件提案から契約締結、勤怠管理もすべてオンライン完結
・継続率90%!一人ひとりをサポート
・参画後の評価で委託料が上がる認定パートナー制度
・簡単60秒で登録
注意点
すべてのケースをカバーする
match文ではすべての可能なケースをカバーする必要があります。
カバーされていないパターンがあると、コンパイルエラーが発生します。_を使って、他の全てのケースをカバーするのが一般的です。
パターンマッチングの可読性
match文は条件分岐を明確にするための強力なツールですが、複雑すぎると可読性が低下する可能性があります。
特に、ネストしたmatchや多くのパターンがある場合、コードの可読性を保つために適切にコメントを付けるか、別の関数に分割することが推奨されています。
パターンの精密さ
パターンマッチングでは、パターンが正確に定義されている必要があります。
間違ったパターンを定義すると、意図しないコードが実行される可能性があります。特に構造体やタプルのパターンマッチングでは、フィールド名を正確に指定することが必要です。
Rustをもっと詳しくなりたい方に
Rustプログラミング完全ガイド 他言語との比較で違いが分かる!

個人的には他の言語開発もそれなりにあったことからこの本を読むことでかなりRustへの理解が深まりました。
プログラムやシステム的な専門用語は当たり前に登場するものの、他の言語での開発経験がある方なら問題ないでしょう。むしろその経験があることで、多言語との比較をしながら読み進めることができます。
内容的には大容量かつ丁寧すぎるほど嚙み砕いて説明がされているため、情報量は十分といえます。Rust自体学習コストが高く、難易度の高い言語のためこのくらいが妥当といえます。
プログラミング初心者レベルの方には難しい内容となっていますが、Rustの概念を理解し、基礎を把握することができる本であること間違いなしです。
Rust学習のために筆者が実際に読んでおすすめしたい本をまとめています。
基礎から学ぶRustプログラミング入門

本コースではRustについて全く経験がない方でもスムーズに学習を進められるようにとなっています。
基本的にはコードベースで解説を行い、抽象度が高く難しい内容に関しては適宜スライドも使いながら丁寧に解説します。そしてただ文法を学ぶだけではなく、最終的には演習としてCLIアプリケーションを作成し学習内容の定着を図ります。
以下の記事では筆者が実際に受講したおすすめUdemy教材をまとめています。
※本ページではアフィリエイトリンク(PR)が含まれています