Dart Academy · レッスン

エントリ、キー、値の反復処理

Mapをループし、putIfAbsentを使う

レッスン 4/413 ステップ

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

Mapをループする

Map内のすべてのペアを調べたいことがあります。Dartには、Mapをたどるためのわかりやすい方法がいくつか用意されています。🚶

キーだけを扱う

keysプロパティを使うと、すべてのキーを反復処理できるiterableを取得できます。ラベルだけが必要な場合は、これをループします。

var m = {'a': 1, 'b': 2};
for (var k in m.keys) {
  print(k);
}

値だけを扱う

valuesプロパティを使うと、キーを完全に無視して、すべての値を反復処理できるiterableを取得できます。

var m = {'a': 1, 'b': 2};
for (var v in m.values) {
  print(v);
}

entriesでペアを扱う

entriesプロパティを使うとMapEntryオブジェクトを取得でき、キーとその値の両方に同時にアクセスできます。

for (var e in m.entries) {
  print(e.key);
  print(e.value);
}

forEachのショートカット

forEachメソッドを使うと、各キーと値を直接受け取れるため、ペアごとの処理をすっきり記述できます。

m.forEach((key, value) {
  print('$key: $value');
});

putIfAbsentを使う

putIfAbsentを使うと、キーが存在しない場合にだけ値を設定できます。既存のキーはそのまま残ります。

var m = {'a': 1};
m.putIfAbsent('b', () => 2);

putIfAbsentが役立つ理由

putIfAbsentの値を生成する関数は必要な場合にだけ実行されるため、すでに存在するキーに対する無駄な処理を避けられます。

m.putIfAbsent('a', () => expensive());

値を更新する

updateメソッドは関数を使って既存のキーの値を変更します。カウンターや集計に最適です。

var counts = {'a': 1};
counts.update('a', (v) => v + 1);

フォールバック付きのupdate

ifAbsentをupdateに渡すと、新しいキーにもエラーではなく初期値を設定できます。

counts.update('z', (v) => v + 1,
  ifAbsent: () => 1);

mapで形を変える

mapメソッドはすべてのエントリを新しいペアに変換し、元のMapを変更せずに新しいMapを返します。

var doubled = m.map((k, v) =>
  MapEntry(k, v * 2));

順序は挿入順です

デフォルトのMapはキーを挿入した順序を保持するため、ループでは常にその順序でペアを処理できます。

クイックチェック

1回のループでキーと値の両方を一緒に取得できるプロパティはどれですか?

まとめ

よくできました!keys、values、entriesを使ってループし、putIfAbsentとupdateを活用してペアを効率よく管理できるようになりました。🎉

無料で開始

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

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

コース
30
レッスン
120

よくある質問

「エントリ、キー、値の反復処理」レッスンは無料ですか?

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

「エントリ、キー、値の反復処理」で何を学びますか?

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

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

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

「エントリ、キー、値の反復処理」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. Setと重複しない要素
  2. Setの演算:union、intersection、difference
  3. キーと値を格納するMap
  4. エントリ、キー、値の反復処理
← Dart Academyに戻る