相关疑难解决方法(0)

生成函数中的委托收益率(收益率星,收益率*)

ECMAScript 6应该带来生成器函数和迭代器.生成器函数(具有function*语法)返回迭代器.迭代器有一个next方法,当重复调用时,它执行生成器函数的主体,在每个yield操作员处重复暂停和恢复执行.

生成器上ECMAScript 6 wiki还引入了"委托产量" yield*运算符,如下所示:

yield*运营商委托给另一发电机.这为组合生成器提供了方便的机制.

"委托给另一台发电机"是什么意思?我怎样才能yield*"方便地组合发电机"?

[您可以使用--harmony-generators标志在Node v0.11.3中使用生成器.]

javascript ecmascript-6

30
推荐指数
2
解决办法
3846
查看次数

如何通过 Dart 中的 async* 传输错误?

在 flutter 中,我们使用 StreamBuilder 和接收流 e 给我们一个包含“数据”但也包含“错误”对象的快照对象。

我想用 async* 制作一个产生数据的函数,但由于某些条件,它也会产生一些错误。我怎样才能在 Dart 中实现这一目标?

Stream<int> justAFunction() async* {
  yield 0;

  for (var i = 1; i < 11; ++i) {
    await Future.delayed(millis(500));
    yield i;
  }

  yield AnyError(); <- I WANT TO YIELD THIS!
}
Run Code Online (Sandbox Code Playgroud)

然后,在 StreamBuilder 中:

StreamBuilder(
            stream: justAFunction(),
            builder: (BuildContext context, AsyncSnapshot<RequestResult> snapshot) {
              return Center(child: Text("The error tha came: ${snapshot.error}")); <- THIS SHOULD BE THE AnyError ABOVE!
            },
          )
Run Code Online (Sandbox Code Playgroud)

dart flutter

6
推荐指数
1
解决办法
767
查看次数

Dart中的屈服示例

如何在Dart中使用与Scala相同的产量?Scala中有一个例子" https://alvinalexander.com/scala/scala-for-loop-yield-examples-yield-tutorial "

scala> val a = Array(1, 2, 3, 4, 5)
a: Array[Int] = Array(1, 2, 3, 4, 5)

scala> for (e <- a if e > 2) yield e
res1: Array[Int] = Array(3, 4, 5)
Run Code Online (Sandbox Code Playgroud)

我怎么能用飞镖做?

void main() {
  var a = [1, 2, 3, 4, 5];

  for (var e in a) {
    if (e > 2) yield e;
  }
}
Run Code Online (Sandbox Code Playgroud)

functional-programming dart

2
推荐指数
2
解决办法
3907
查看次数