コレクションのifとfor
条件やループでリストを作る
「コレクションのifとfor」はCoddyKit上の無料Dart Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDart Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Dart Academyコースには全4レッスンが含まれています。
リテラル内のロジック
リストの内容が条件によって変わることがあります。Dartではコレクションliteralの中にifを直接書けるため、1か所で構築できます。
Collection if
collection ifは、条件がtrueのときだけ要素を追加します。条件を満たさなければ、その場所からは何も追加されません。
var nav = ['Home', if (loggedIn) 'Profile'];ifとelse
elseを追加して、2つの要素から選択できます。2つのうち常に一方だけがコレクションに入り、両方入ることはありません。
var tags = [if (vip) 'Gold' else 'Standard'];波かっこは不要
文としてのifとは異なり、collection ifでは波かっこもセミコロンも必要ありません。ブロックを実行するのではなく、要素を生成します。
Collection for
collection forは、リテラル内でループしながら要素を生成します。ループするたびに、ループ本体が生成したものが追加されます。
var doubled = [for (var n in nums) n * 2];mapのようにインラインで使う
すでにリテラル内にいる場合、collection forはmap呼び出しの代わりによく使われます。単純な変換なら、より直接的に読めます。
ifとforを組み合わせる
両者をcombineできます。forでループし、その後ifで絞り込みます。これらを組み合わせると、表現力のある1つのリテラルで形を整えたリストを作れます。
var evens = [for (var n in nums) if (n.isEven) n];リスト以外でも使える
コレクションのifとforは、setやmapのリテラルでも使えます。同じ分かりやすい構文で、3種類すべてのコレクションを構築できます。
var m = {for (var u in users) u.id: u.name};Spreadと組み合わせる
これらはspread演算子とも組み合わせられます。一部の要素を直接記述し、別のコレクションを展開し、条件分岐も加えるといったことを、1つのリテラルで行えます。
var x = [...base, if (extra) 'plus'];後から構築するより優れている理由
最初にコレクションを構築しておくと、コードがdeclarativeになります。空のリストを作り、別々の文で要素を追加する必要がありません。
UIリストに最適
これはFlutterで特に役立ちます。childrenリストでは、条件やデータに応じてウィジェットを表示することがよくあります。リテラルをすっきり読みやすく保てます。🧩
確認問題
collection ifで条件がfalse、かつelseがない場合はどうなりますか?
まとめ
コレクションのifは条件に応じて要素を追加し、コレクションのforはリスト、set、mapのリテラル内でループしながら要素を生成します。🎯
よくある質問
「コレクションのifとfor」レッスンは無料ですか?
はい。「コレクションのifとfor」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Dart Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Dart Academyコースには全4レッスンが含まれています。
「コレクションのifとfor」で何を学びますか?
条件やループでリストを作る ブラウザで直接実行するハンズオンコードでDart Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Dart Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDart Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「コレクションのifとfor」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDart Academyレッスンでコードを書いて実行できますか?
はい。すべてのDart Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- カスケード演算子(..)
- Null短絡カスケード(?..)
- SpreadとNull対応Spread
- コレクションのifとfor