パターンによる分解
Record、リスト、Mapを分解する
「パターンによる分解」は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フィードバックを取得できます。ローカル設定は不要です。