0Pricing
Dart Academy · レッスン

switchパターンとガード

形状を照合し、when条件を追加する

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

switchとパターン

最新のDartでは、switchで定数だけでなくパターンにも一致させられます。各caseで値の形を調べ、同時に展開することもできます。🔀

レコードの形に一致させる

caseにはレコードパターンを指定できます。値がその形に一致するとcaseが実行され、フィールドが変数に束縛されます。

switch (point) {
  case (0, 0): print('origin');
}

一致と同時に束縛する

パターンは、一致させながら値を取り込むことができます。スロットに名前を付けると、case本体ですぐにフィールドを使えます。

switch (p) {
  case (var x, var y): print(x + y);
}

ワイルドカードのcase

アンダースコアのcaseは何にでも一致します。defaultのように動作し、それまでのcaseで処理されなかった値を受け取ります。

switch (n) {
  case 1: print('one');
  case _: print('other');
}

ガードとは

ガードは、whenキーワードを使ってcaseに条件を追加します。パターンが一致し、さらに条件がtrueの場合にだけcaseが実行されます。

case (var x, var y) when x == y:
  print('diagonal');

ガードで一致条件を細かくする

形だけでは不十分な場合にガードを使います。値に基づいて、1つのパターンをより細かな結果に分けられます。

順序が結果を決める

caseは上から下へ確認されます。最初に一致したcaseが選ばれるため、より具体的なパターンを、幅広いパターンより前に置きます。

式としてのswitch

switch式は値を返します。caseでは矢印を使い、switch全体が1つの結果として評価されます。

var label = switch (n) {
  1 => 'one',
  _ => 'many',
};

breakは不要

パターンを使ったcaseはフォールスルーしないため、breakを記述する必要はありません。各caseが独立して、すっきりと書けます。

論理ORパターン

||でパターンをつなぐと、1つのcaseで複数の形に一致させられます。本体を繰り返さず、関連する値をまとめて処理できます。

case 1 || 2 || 3:
  print('small');

網羅的で安全

sealed型では、コンパイラーがswitchの網羅性を確認します。caseを漏らすと、実行時になる前にDartが警告します。

クイックチェック

switchのcaseパターンに追加の条件を指定するキーワードはどれですか?

まとめ:パターンとガード

その調子です!🎯 switchではパターンに一致させ、フィールドを取り込み、whenガードで条件を細かくし、式として値を返せます。

よくある質問

「switchパターンとガード」レッスンは無料ですか?

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

「switchパターンとガード」で何を学びますか?

形状を照合し、when条件を追加する ブラウザで直接実行するハンズオンコードでDart Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「switchパターンとガード」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. Record:軽量なタプル
  2. 位置指定と名前付きのRecordフィールド
  3. パターンによる分解
  4. switchパターンとガード
← Dart Academyに戻る