libro
www.tuyano.com
初心者のためのDart 2入門

コレクションについて (5/5)

作成:2018-03-24 09:27
更新:2018-03-24 09:27

■forEachによる繰り返し

リストなどでは、すべての値を処理するとき、for-inを利用するのが一般的ですが、実は他にも方法があります。それは「forEach」というものを利用する方法です。これは、以下のような形で記述します。
リスト .forEach( ( 変数  ) {
    ……繰り返す処理……
} );

forEach内にある ( 変数 ) に、リストの値が取り出されて設定されます。この変数を使い、その後の{}部分に処理を記述します。ちょっとわかりにくいかも知れませんが、以下のように整理して考えると良いでしょう。
リスト .forEach( 繰り返し部分 )

※繰り返し部分
  ↓
( 変数  ) {
    ……処理……
}
forEachの後の()内に、繰り返しのための(○○){……}というものが組み込まれているわけですね。では、簡単なサンプルを下のリスト欄に挙げておきましょう。これは、リストarrの合計を計算するサンプルです。ここでは、リストarrをこんな具合に合計しています。
  arr.forEach((n){
    total += n;
  });
arrの値が順に変数nに代入され、その中のtotal += n;が実行されていき、合計が計算されるというわけです。


■「ラムダ式」による書き方

今回のサンプルでは、forEachでは、total += n; というたった1行の文を実行しているだけでした。こういう1行だけの処理の場合は、「ラムダ式」という機能を使うことができます。これは、forEachの文を以下のような形で記述したものです。
arr.forEach((n)=>total += n);
不思議な書き方をしていますね。()内の部分が、以下のような形で記述されていることがわかるでしょう。
( 変数 ) => 実行する文 ;
今回、forEach内で実行したのは「関数」と呼ばれるものです。ラムダ式も関数の仲間です。この関数については、次回、しっかりと説明する予定なので、今は「こういう書き方もできるらしい」という程度に覚えておけば十分です。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

void main() {
  var arr = [123,45,678,90,98,765,43,21];
  var total = 0;
  arr.forEach((n){
    total += n;
  });
  print('total: ${total}');
}
※関連コンテンツ

「初心者のためのDart 2入門」に戻る