Dart Academy · レッスン

map、where、toListによる変換

Iterableメソッドでリストの形を変える

レッスン 4/413 ステップ

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

Listを組み替える

手作業でループを書く代わりに、Dartでは便利なIterableのメソッドを使ってリストを変換できます。結果を説明すれば、Dartがそれを作ってくれます。✨

mapで項目を変換する

mapメソッドはすべての項目に関数を実行し、結果からなる新しいシーケンスを生成します。元のリストは変更されません。

var nums = [1, 2, 3];
var doubled = nums.map((n) => n * 2);

mapはIterableを返す

mapがListではなくIterableを返すことに注目してください。遅延評価されるため、実際に値を読み取るまで計算は行われません。

toListで具体的なListにする

toListを使うと、任意のIterableを実際のリストに変換できます。これにより処理が実行され、インデックスでアクセスできるリストが得られます。

var result = nums.map((n) => n * 2).toList();

whereで項目を絞り込む

whereメソッドは、判定に合格した項目だけを残し、それ以外を除外します。項目の絞り込みにはまずこれを使うとよいでしょう。

var evens = nums.where((n) => n.isEven);

mapとwhereをつなげる

処理を流れるようにつなげられます。まずwhereで絞り込み、次にmapで変換するため、データに対する処理が明確な文章のように読めます。

var out = nums.where((n) => n > 1).map((n) => n * 10);

最後は必ずtoListにする

メソッドをつないだ後はtoListを呼び出して、結果を確定させてください。忘れると、読み取るたびに再計算される遅延Iterableのままになります。

var finalList = out.toList();

元のListは安全に保たれる

これらのメソッドは元のリストを変更せず、新しいデータを返します。元のnumsは、最初の状態のままです。

print(nums); // [1, 2, 3]

型を変更する

mapでは型そのものを変更できます。ここでは、数値のリストが1回の簡潔な処理でStringラベルのリストになります。

var labels = nums.map((n) => 'item $n').toList();

expandで平坦化する

各項目が複数の項目に変わる場合はexpandを使います。変換してから各要素を平坦化し、1つの連続したシーケンスにまとめます。

var pairs = nums.expand((n) => [n, n]).toList();

すばやく変換する

ほかにも便利な終端処理があります。joinを使うと項目を1つの文字列につなげられるため、リストをユーザーに表示するのに最適です。

print(nums.join(', ')); // 1, 2, 3

確認問題

リストに対してmapをつなげましたが、toListを呼び出していません。何が得られますか。

まとめ

これでリストを自在に変換できるようになりました。mapで項目を変更し、whereで絞り込み、toListで結果を確定できます。毎回手作業でループを書くより、パイプラインのほうが効率的です。🚀

無料で開始

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

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

コース
30
レッスン
120

よくある質問

「map、where、toListによる変換」レッスンは無料ですか?

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

「map、where、toListによる変換」で何を学びますか?

Iterableメソッドでリストの形を変える ブラウザで直接実行するハンズオンコードでDart Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「map、where、toListによる変換」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. リストの作成とインデックス指定
  2. 要素の追加、削除、更新
  3. リストの検索と並べ替え
  4. map、where、toListによる変換
← Dart Academyに戻る