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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Record:軽量なタプル
- 位置指定と名前付きのRecordフィールド
- パターンによる分解
- switchパターンとガード