国产chinesehdxxxx野外,国产av无码专区亚洲av琪琪,播放男人添女人下边视频,成人国产精品一区二区免费看,chinese丰满人妻videos

生成器

2020-02-03 23:43 更新

當(dāng)您需要延遲生成( lazily produce )一系列值時(shí), 可以考慮使用_生成器函數(shù)_。 Dart 內(nèi)置支持兩種生成器函數(shù):

  • Synchronous 生成器: 返回一個(gè) Iterable 對(duì)象。
  • Asynchronous 生成器: 返回一個(gè) Stream 對(duì)象。

通過(guò)在函數(shù)體標(biāo)記 sync*, 可以實(shí)現(xiàn)一個(gè)同步生成器函數(shù)。 使用 yield 語(yǔ)句來(lái)傳遞值:

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

通過(guò)在函數(shù)體標(biāo)記 async*, 可以實(shí)現(xiàn)一個(gè)異步生成器函數(shù)。 使用 yield 語(yǔ)句來(lái)傳遞值:

Stream<int> asynchronousNaturalsTo(int n) async* {
  int k = 0;
  while (k < n) yield k++;
}

如果生成器是遞歸的,可以使用 yield* 來(lái)提高其性能:

Iterable<int> naturalsDownFrom(int n) sync* {
  if (n > 0) {
    yield n;
    yield* naturalsDownFrom(n - 1);
  }
}

有關(guān)生成器的更多信息,請(qǐng)參考文章 Dart Language Asynchrony Support: Phase 2 .

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)