コレクションに対する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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 定番のforループ
- whileとdo-whileループ
- コレクションに対するfor-in
- break、continue、ラベル