问题标签 [yield]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
18 回答
100741 浏览

python - 在 Python 中重置生成器对象

我有一个由多个产量返回的生成器对象。准备调用这个生成器是相当耗时的操作。这就是为什么我想多次重用生成器。

当然,我正在考虑将内容复制到简单列表中。有没有办法重置我的发电机?

0 投票
2 回答
4285 浏览

performance - 为什么在此示例中使用序列比使用列表慢得多

背景:我有一系列连续的带时间戳的数据。数据序列中有漏洞,有的很大,有的只是一个缺失值。
每当孔只是一个缺失值时,我想使用虚拟值修补孔(将忽略较大的孔)。

我想使用修补序列的延迟生成,因此我使用 Seq.unfold。

我已经制作了两个版本的方法来修补数据中的漏洞。

第一个使用带有漏洞的数据序列并生成修补序列。这就是我想要的,但是当输入序列中的元素数量超过 1000 时,这些方法的运行速度非常慢,并且输入序列包含的元素越多,情况就会变得越糟。

第二种方法使用带有漏洞的数据列表并生成修补后的序列,并且运行速度很快。然而,这不是我想要的,因为这会强制在内存中实例化整个输入列表。

我想使用 (sequence -> sequence) 方法而不是 (list -> sequence) 方法,以避免将整个输入列表同时放在内存中。

问题:

1)为什么第一种方法这么慢(随着更大的输入列表变得越来越糟)(我怀疑它与使用 Seq.skip 1 重复创建新序列有关,但我不确定)

2)如何在使用输入序列而不是输入列表的同时快速修补数据中的漏洞?

编码:

0 投票
1 回答
2109 浏览

c# - 如何从匿名类型 IEnumerable 中选择项目子集?

我有以下代码。

我不得不走匿名类型路线,因为 CodeDescription 不是 benefitCode 的属性,并且客户希望它以这种方式出现在 dropDrownList 中。无论如何,我的问题是如何从该列表中选择项目的子集?我需要根据 BenInterest 属性选择项目。

所以这会返回 IEnumerable,所以我试图走这条路,这就是我卡住的地方。我的意图是构建一个新的 IEnumerable 列表并为其设置一个下拉数据源。

那么如何创建一个仅包含所需项目的相同匿名类型的新 Enumerable。

谢谢你的帮助。干杯,~ck

0 投票
9 回答
4494 浏览

c# - 有人可以揭开 yield 关键字的神秘面纱吗?

我已经看到在 Stack Overflow 和博客上大量使用了 yield 关键字。我不使用LINQ。有人可以解释 yield 关键字吗?

我知道存在类似的问题。但是没有人真正用简单的语言解释它的用途。

0 投票
3 回答
790 浏览

c# - 在 C# 中生成返回查找列表或预加载静态列表更好吗?

我有一个简单的查找列表,我将使用它来填充 Silverlight 中的下拉列表。在此示例中,我使用的是美国各州。

我试图弄清楚返回静态列表或使用yield关键字是否更好。在以下两段代码中,哪个是首选,为什么?

版本 1:使用收益回报

版本 2:返回列表

0 投票
6 回答
10347 浏览

c# - C# 中的 yield return 是线程安全的吗?

我有以下代码:

这是线程安全的吗?如果不是,我是否必须lock在循环或yield return?

这就是我的意思:

Thread1访问该Keys属性,而 Thread2 将一个项目添加到基础字典。Thread1 是否受 Thread2 的添加影响?

0 投票
1 回答
156 浏览

ruby - 我需要在 Ruby 中用括号括起来吗?

在 Ruby 中我可以使用

一切正常,但如果我这样做

我收到关于需要括号以确保未来兼容性的警告。我可以将以上内容更改为

口译员又高兴了,但我不明白为什么我需要在一个调用中使用括号而不是另一个?

0 投票
5 回答
42272 浏览

ruby - Ruby:Proc#call 与产量

该方法在 Ruby 中的以下两种实现之间的行为差​​异是什么thrice

“行为差异”包括错误处理、性能、工具支持等。

0 投票
5 回答
131 浏览

ruby - 产量:为什么我不能写:p test_method { i.upcase }

如果我这样调用 test_method:

为什么我需要块内的 {|i|} 而不是这样说:

我这么认为的原因是因为当在 test_method 中调用 yield 时,我们已经有了一个 {|i|}

0 投票
2 回答
266 浏览

ruby - 是否需要在:yield(self[i])中引用self

在这个来自博客文章的例子中,

是否有必要self在语句中使用:

或者可以简单地说: