Dart Setの各値を演算して結果を蓄積するサンプル

環境
Dart 2.18.4

構文
リスト.reduce((accumulator,curVal))
accumulator : コールバック関数の結果を累積する
curVal : 処理されている配列の値

使用例

void main() {
  var s = {2, 2, 3, 4, 5};

  print(s.reduce((acc, curr) => acc + curr));
}

結果
16

foldを使用すると初期値が設定できるので、値が1つしかない場合は「fold」を使用すれば解決します。

void main() {
  var s = {5};

  print(s.fold<int>(
      5,
      (acc, curVal) =>
          (2 < curVal) ? acc * 10 : acc + curVal)); 
}

結果
50

IT

Posted by arkgame