1. ホーム
  2. dart

[解決済み] Dart FoldとReduceの比較

2023-07-04 20:15:36

質問

とはどう違うのでしょうか? 折り 減らす はDartではどうなっているのでしょうか、また、どのような場合にもう一方を使うのでしょうか?ドキュメントによると、それらは同じことをするようです。

コレクションの各要素を、提供された値を使用して既存の値と反復的に結合することによって、コレクションを単一の値に縮小します。 の各要素を、提供された 関数を使用します。

どのように解決するのですか?

減らす は、コレクションに含まれる型と同じ型を返す関数で、空でないコレクションにのみ使用できます。

折り畳み は、どのような場合でも使用することができます。

例えば、リスト内のすべての文字列の長さの合計を計算するために reduce . を使う必要があります。 fold :

final list = ['a', 'bb', 'ccc'];
// compute the sum of all length
list.fold(0, (t, e) => t + e.length); // result is 6

ちなみに list.reduce(f) のショートカットと見なすことができます。 list.skip(1).fold(list.first, f) .