12.Dart - 生成器

Dart - 生成器

void main() {
  /**
   * 同步生成器
   */
  tongbuTo(100);
  yibuTo(100);
  diguiTo(100);
}

//同步生成器
Iterable<int> tongbuTo(int n) sync* {
  int i = 0;
  while (i < n) yield i++;
}

//異步生成器
Stream<int> yibuTo(int n) async* {
  int i = 0;
  while (i < n) yield i++;
}

//遞歸調用的 yield*
Iterable<int> diguiTo(int i) sync* {
  if (i > 0) {
    yield i;
    yield* diguiTo(i - 1);
  }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章