Dart Academy · レッスン

Enumをswitchで漏れなく処理する

コンパイラーのチェックを受けながら全ケースを処理する

レッスン 4/413 ステップ

「Enumをswitchで漏れなく処理する」はCoddyKit上の無料Dart Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDart Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Dart Academyコースには全4レッスンが含まれています。

switch は Enum と相性がよい

値が少数の選択肢のいずれかである場合、switchを使うと各ケースをすっきり処理できます。enum と switch は自然な組み合わせです。

基本的な switch

enum の各メンバーに1つずつcaseを記述し、その場合に実行するコードを指定します。Dartは値と case を照合し、該当する分岐を実行します。

switch (status) {
  case Status.pending: print("Waiting");
}

網羅性とはすべてのケースを扱うこと

enum に対する switch では、Dartがすべてのメンバーを処理しているか確認します。1つでも漏れると、実行前に analyzer が警告します。

網羅性が役立つ理由

この安全網は非常に有効です。後から enum に新しいメンバーを追加すると、更新が必要なすべての switch をコンパイラーが指摘してくれます。

switch 式

switch 式は文を実行する代わりに値を返します。fat arrow を使って、各 case を結果に対応付けます。

var label = switch (status) {
  Status.pending => "Waiting",
};

矢印による case は簡潔

switch 式では、各 case をcase-value => resultの形式で記述します。カンマで区切るため、コンパクトな検索テーブルになります。

Status.shipped => "On the way",

Dart ではフォールスルーしない

一部の言語とは異なり、Dart の case はフォールスルーしません。各 case は自身のコードだけを実行するため、余分な break は必要ありません。

ワイルドカードの default

defaultまたは _ を使うと、列挙していない値をすべて捕捉できます。ただし enum では、安全性を高めるため各メンバーを個別に処理することをおすすめします。

default => "Unknown",

default はチェックを無効にする

キャッチオールのdefaultを追加すると switch の条件を満たすため、Dartはメンバーの不足について警告しなくなります。使用は必要最小限にしてください。

1つの本体を共有する

2つのメンバーを同じ分岐にまとめて記述できます。コードを繰り返さず、両方で同じ処理を実行できます。

case Status.shipped || Status.delivered: print("Sent");

網羅的な switch を習慣にする

enum でdefaultを省略するのは、面倒な作業ではなく機能です。コンパイラーを、将来の変更を確認するチェックリストとして活用できます。

クイックチェック

enum に対して網羅的な switch を使うと、何が得られますか?

まとめ: 網羅的な switch

switchで各 enum の case を処理し、式として値を返し、未処理のメンバーがあると警告されることを学びました。安全性のため default は省略します。🎯

無料で開始

AI チューターと学ぶ Dart — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「Enumをswitchで漏れなく処理する」レッスンは無料ですか?

はい。「Enumをswitchで漏れなく処理する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Dart Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Dart Academyコースには全4レッスンが含まれています。

「Enumをswitchで漏れなく処理する」で何を学びますか?

コンパイラーのチェックを受けながら全ケースを処理する ブラウザで直接実行するハンズオンコードでDart Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Dart Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのDart Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「Enumをswitchで漏れなく処理する」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このDart Academyレッスンでコードを書いて実行できますか?

はい。すべてのDart Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 通常のEnumの宣言と使用
  2. Enumの値、index、name
  3. フィールドとメソッドを持つ拡張Enum
  4. Enumをswitchで漏れなく処理する
← Dart Academyに戻る