inflearn logo
知識共有
inflearn logo

優雅なRust中級(4)-パターンマッチング

matchの分岐が増えるほど、値の構造をどのように確認し、必要な部分だけを取り出せばよいのか混乱しやすくなります。この講義では、タプル・構造体・列挙型・スライスを実際に分解し、if let、let else、マッチガードも活用して、条件を簡潔かつ正確に表現する方法を学びます。参照をパターンとして扱う際に、値がムーブされるのか借用されるのかも、例を通して確認します。

1名 が受講中です。

難易度 中級以上

受講期間 無制限

Rust
Rust
Rust
Rust

受講後に得られること

  • matchと構造分解パターンによって、さまざまな形の値を漏れなく処理できます。

  • 状況に応じて、if let、let else、while letの中から適切な構文を選択できます。

  • 参照パターンを読み、値の移動と借用を区別できます。

値の形を読み取り、必要な部分を取り出すパターン構文

Rustではmatchは値に応じてコードを分岐させるだけではありません。タプル・構造体・列挙型の内部の値を取り出して名前を付け、処理されていないケースがないかも確認してくれます。この講義では、短い例を実際に実行しながら、パターンの基本ルールから条件を組み合わせる方法まで、順を追って学びます。

このような内容を学びます

matchと分解

パターンに応じて値を分岐し、あらゆるケースを漏れなく扱う方法を身につけます。タプル・構造体・列挙型・スライスを分解しながら、必要な値にだけ名前を付けてみます。 letで使えるパターンと、マッチに失敗する可能性のあるパターンも区別します。

マッチガードの判定順序

状況に応じたパターン表現

if letlet elsewhile letで1つのケースに集中するコードを書きます。ORパターン・範囲・マッチガード・@バインディングで条件を表現し、参照を分解するときに値がムーブされるのか借用されるのかを確認します。最後に、学んだ構文を小さなコマンド処理の演習に適用します。

スライスパターン

総合演習:コマンドを解釈するコードの作成

文字列で渡されたコマンドをパターンで区別し、必要な値を取り出して処理する関数を作成します。複数のケースを漏れなく扱えているかをテストで確認し、これまでに学んだ構造分解と分岐構文を実際のコードに適用してみます。

受講前の参考事項

実習環境

  • オペレーティングシステムおよびバージョン(OS):Windows、macOS、Linuxなど

  • 使用ツール:rustup、cargo、VS Code

  • PCスペック: 特別な高性能は必要ありません

学習資料

  • オンライン学習教材

  • GitHubソースコード

前提知識および注意事項

  • 우아한プログラミング言語Rustの入門および活用講座の受講を推奨

  • 「優雅なRust」中級シリーズ講義の一部です

こんな方に
おすすめです

学習対象は
誰でしょう?

  • Rustの基本文法は習得したものの、複雑なmatch式を読んだり書いたりするのが難しい方

  • 列挙型や構造体の値を扱う際に、繰り返し発生する条件チェックのコードを減らしたい方

  • パターンで ref、&、マッチガードがどのように動作するのかを例で確認したい方

前提知識、
必要でしょうか?

  • Rustのメモリ所有権モデルに対する理解

  • Rustの基礎文法を理解する

こんにちは
hatemogiです。

キャリア認証

2,187

受講生

171

受講レビュー

27

回答

4.7

講座評価

10

講座

関数型プログラミングに関心の高いバックエンド開発者です。カカオの開発チーム長、NHNの主席、LINE+のリードを務め、開発チームのリーディングを行ってきました。また、DnotitiaというAIスタートアップで開発チーム長として働き、Rustでプロジェクトを進めました。

カリキュラム

全体

12件 ∙ (1時間 2分)

講座掲載日: 
最終更新日: 

受講レビュー

まだ十分な評価を受けていない講座です。
みんなの役に立つ受講レビューを書いてください!

hatemogiの他の講座

知識共有者の他の講座を見てみましょう!

似ている講座

同じ分野の他の講座を見てみましょう!

期間限定セール

¥6

37%

¥1,422