2021/3/1 : Dart : A tour of the Dart language,Generatorsの訳

Generators

 

値のシーケンス(集合)を遅延生成する必要がある場合は、ジェネレーター関数(generator function)の使用を検討してください。

Dartには、次の2種類のジェネレーター関数のサポートが組み込まれています。

Synchronous generator:Iterableオブジェクトを返す。

Asynchronous generator:Streamオブジェクトを返す。

 

Synchronous generator関数を実装(定義)するには、下記のように関数のボディの前に

sync*

をつけます。そして、関数ボディ内で

yeild

を用いて、要素を生成します。

Iterable<int> naturalsTo(int n) sync* {
  int k = 0;
  while (k < n