エントリ、キー、値の反復処理
Mapをループし、putIfAbsentを使う
「エントリ、キー、値の反復処理」は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フィードバックを取得できます。ローカル設定は不要です。