W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
當您需要延遲生成( lazily produce )一系列值時, 可以考慮使用_生成器函數_。 Dart 內置支持兩種生成器函數:
通過在函數體標記 sync*, 可以實現一個同步生成器函數。 使用 yield 語句來傳遞值:
Iterable<int> naturalsTo(int n) sync* {
int k = 0;
while (k < n) yield k++;
}
通過在函數體標記 async*, 可以實現一個異步生成器函數。 使用 yield 語句來傳遞值:
Stream<int> asynchronousNaturalsTo(int n) async* {
int k = 0;
while (k < n) yield k++;
}
如果生成器是遞歸的,可以使用 yield* 來提高其性能:
Iterable<int> naturalsDownFrom(int n) sync* {
if (n > 0) {
yield n;
yield* naturalsDownFrom(n - 1);
}
}
有關生成器的更多信息,請參考文章 Dart Language Asynchrony Support: Phase 2 .
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯系方式:
更多建議: