見出し画像

Dart日記30日目【ジェネレーター[同期ジェネレーター]】

同期ジェネレーター

まず戻り値をIterable型にして、次に引数の後に*syncキーワードを記述
最後にreturnの代わりにyieldキーワードで戻す値を記述する

Iterable<int> getRange(int start, int end) sync*{
 print('called getRange()');
 for(int i = start; i <= end; i++){
   print('before yield');
   yield  i;
   print('after yield');
   print('\n');
 }
}


呼び出す側は普通にイテレーターを利用すると同じように記述する

main(){
 final numbers = getRange(1,10);

 for(int val in numbers){
   print('before print val');
   print(val);
   print('after print val');
 }
}


この記事が気に入ったらサポートをしてみませんか?