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);
}
}