0Pricing
Dart Academy · レッスン

コレクションに対するfor-in

インデックスなしですべての要素をたどる

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

インデックスを省略する

位置ではなく、各項目そのものだけが必要なこともよくあります。for-in loopなら、カウンターを管理せずに項目を1つずつ受け取れます。✨

for-inの形

for、変数名、キーワードin、そしてコレクションの順に書きます。各回の処理で、変数には次の要素が束縛されます。

for (var item in items) {
  print(item);
}

リストをループする

Listをfor-inに渡すと、lengthや角括弧を意識せずに、先頭から末尾まで順番にすべての要素を処理できます。

var fruits = ['apple', 'pear'];
for (var f in fruits) {
  print(f);
}

インデックス指定よりも簡潔

従来のforループと比べて、for-inではカウンター、lengthのチェック、角括弧による検索が不要です。コードが少なければbugsも減ります。

for (var f in fruits) {
  print(f);
}

型を指定したループ変数

明確さを高めるため、varの代わりに型名を指定できます。ここではリストを処理する間、各elementが明示的にStringになります。

for (String name in names) {
  print(name);
}

Setをループする

Setもfor-inで処理できます。各値を1回ずつ取得できますが、リストのように順序が保証されるわけではありません。

var ids = {1, 2, 3};
for (var id in ids) {
  print(id);
}

任意のIterable

for-inはリストやセットだけでなく、任意のIterableで動作します。範囲、mapのキー、mapやwhereの結果などが含まれます。

for (var k in scores.keys) {
  print(k);
}

Mapのエントリをループする

Mapをループするには、そのentriesを処理します。各エントリからキーと値を取得し、1回の処理で一緒に読み取れます。

for (var e in scores.entries) {
  print('${e.key}: ${e.value}');
}

習慣として読み取り専用にする

ループ変数は各値のcopyとして扱ってください。ループ変数に再代入しても、元のコレクションの要素は変わりません。

for (var n in nums) {
  n = n * 2; // does not change nums
}

ループ中に変更しない

for-inの実行中にコレクションへ要素を追加または削除すると、エラーが発生します。代わりにnewリストを作成するか、コピーをループしてください。

for (var x in list) {
  // list.add(x); // throws!
}

forEachという選択肢

forEachメソッドでもコールバックを使って同じ処理ができます。通常はfor-inのほうが明確で、breakやcontinueも使用できます。

fruits.forEach((f) => print(f));

クイックチェック

インデックスを管理せずにListのすべての値を出力したい場合、最も簡潔な選択肢は何ですか?

まとめ

for-in loopについて学びました。カウンターを使わずに、任意のIterableの各項目を処理できます。リスト、セット、Mapのエントリをすっきりとループできます。🎯

よくある質問

「コレクションに対するfor-in」レッスンは無料ですか?

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

「コレクションに対するfor-in」で何を学びますか?

インデックスなしですべての要素をたどる ブラウザで直接実行するハンズオンコードでDart Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「コレクションに対するfor-in」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. 定番のforループ
  2. whileとdo-whileループ
  3. コレクションに対するfor-in
  4. break、continue、ラベル
← Dart Academyに戻る