在1.8版本中,它是不是像枚举一样是一个实验性特性?如何在DART编辑器中使用它?有没有好的文章或示例应用程序可以让我开始做这件事?
当它还是一个实验功能时,推荐给wine 吧套餐的是什么?是否可以在wine 吧套餐中使用该功能?
在1.8版本中,它是不是像枚举一样是一个实验性特性?如何在DART编辑器中使用它?有没有好的文章或示例应用程序可以让我开始做这件事?
当它还是一个实验功能时,推荐给wine 吧套餐的是什么?是否可以在wine 吧套餐中使用该功能?
Update 2
最新的夜间构建也支持async*
void main() {
generate().listen((i) => print(i));
}
Stream<int> generate () async* {
int i = 0;
for(int i = 0; i < 100; i++) {
yield ++i;
}
}
Update
标记为sync*
(返回Iterable)的方法中的yield
和yield*
在1.9.0-edge.43534
中已受支持
void main() {
var x = concat([0, 1, 2, 3, 4], [5, 6, 7, 8, 9]);
// x is an Iterable which iterates over the values 1 to 9
print(x);
}
// A method marked `sync*` returns an `Iterable`
concat(Iterable left, Iterable right) sync* {
yield* left;
yield* right;
}
void main() {
print(filter([0, 1, 2, 3, 4, 5], (x) => x.isEven));
}
filter(ss, p) sync* {
for (var s in ss) {
if (p(s)) yield s;
}
}
尚不支持async*
个生成器函数(返回流).
Original
基本支持已可用.
有关更多详细信息,请参见https://www.dartlang.org/articles/await-async/.
main() async {
// await
print(await foo());
try {
print(await fooThrows());
} catch(e) {
print(e);
}
// await for
var stream = new Stream.fromIterable([1,2,3,4,5]);
await for (var e in stream) {
print(e);
}
}
foo() async => 42;
fooThrows() async => throw 'Anything';