Dart Academy · レッスン

パターンによる分解

Record、リスト、Mapを分解する

レッスン 3/413 ステップ

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

デストラクチャリングとは

デストラクチャリングとは、構造の中から値を取り出し、一度に変数へ代入することです。箱を開けて、それぞれの中身に同時にラベルを付けるようなものです。🎁

パターンは形を表す

パターンとは、値の形に一致するテンプレートです。値が一致すると、Dartはその構成要素を、指定した名前に束縛します。

レコードをデストラクチャリングする

= の左側にレコードパターンを置くと、Dartが一致する位置の値を各変数に代入します。2つの値を2つの名前に、瞬時に割り当てられます。

var (a, b) = (1, 2);
print(a);

名前付きレコードパターン

名前付きフィールドでは、パターン内で名前を使って一致させます。左側のフィールド名が、Dartに取り出す値を伝えます。

var (x: a, y: b) = (x: 3, y: 7);
print(b);

簡単な値の入れ替え

デストラクチャリングは、2つの変数の入れ替えで特に便利です。レコードを作成して展開すれば、値を1行で簡潔に入れ替えられます。

(a, b) = (b, a);
print(a);

リストをデストラクチャリングする

リストパターンでは角かっこを使います。各スロットが1つの要素に束縛されるため、位置と変数が対応します。

var [first, second] = [10, 20];
print(first);

残りの要素

リストパターン内の ... は、残った要素をすべて取り込みます。先頭を取り出し、残りを末尾の要素としてまとめられます。

var [head, ...rest] = [1, 2, 3, 4];
print(rest);

マップをデストラクチャリングする

マップパターンでは、キーを使って値を読み取ります。必要なキーを列挙し、それぞれを変数に束縛します。

var {'id': id} = {'id': 42, 'name': 'A'};
print(id);

ワイルドカードパターン

関心のないスロットには、アンダースコアをワイルドカードとして使います。どんな値にも一致しますが、値は束縛しません。

var (_, important) = ('skip', 99);
print(important);

for-inでデストラクチャリングする

for-inループ内で直接デストラクチャリングできます。手動でインデックスを指定せず、反復しながら各レコードを展開できます。

for (var (k, v) in [(1, 'a')]) {
  print(v);
}

より読みやすく、平坦なコード

パターンを使うと、.field による参照の積み重ねを、読みやすい1行に置き換えられます。コードの意図がひと目で分かるようになります。

クイックチェック

パターン var (_, x) = ('a', 1) で、アンダースコアは何をしますか?

まとめ:デストラクチャリング

よくできました!🙌 パターンを使うと、ワイルドカードや残りの要素も活用しながら、レコード、リスト、マップを名前付き変数にデストラクチャリングできます。

無料で開始

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

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

コース
30
レッスン
120

よくある質問

「パターンによる分解」レッスンは無料ですか?

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

「パターンによる分解」で何を学びますか?

Record、リスト、Mapを分解する ブラウザで直接実行するハンズオンコードでDart Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「パターンによる分解」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

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