yield相关内容

详细说明此功能如何与&;Year&;Quot;一起工作?

我获得此方法(在Unity C#脚本中),但我不理解“Year”部分的实际工作方式。 我从MSDN得知该函数将返回一个我可以迭代的IEnumerator,但是该代码等待了1,5秒,并且没有迭代,因为这意味着在内部创建的对象被多次创建。 这里有人能给我解释一下这段代码是如何工作的吗? IEnumerator DestroyShip() { // create new gameob ..
发布时间:2022-02-21 10:01:57 C#/.NET

Python 3.x:测试生成器是否有剩余元素

当我在 for 循环中使用生成器时,它似乎“知道",当没有更多元素产生时.现在,我必须使用没有 for 循环的生成器,并手动使用 next() 来获取下一个元素.我的问题是,我怎么知道是否没有更多元素? 我只知道:next() 引发异常(StopIteration),如果什么都没有,那么对于这样一个简单的问题,BUT 是不是有点太“重"了?难道没有has_next()之类的方法吗? 以 ..
发布时间:2022-01-24 12:08:52 其他开发

如何在 coffeescript 中启用和声语法支持?

我使用带有 --harmony 标志的 node.js(0.11.13) 并使用了 function *() 和 yield 关键字. 我尝试借助 coffeescript 简化我在 node.js 上的开发,到目前为止它运行良好,但我遇到了 yield 和声明生成器的麻烦 - 它抱怨 'reserved关键字产量'. 有什么想法吗? 解决方案 另一种打开黑色次元之门的方法是: ..
发布时间:2022-01-24 10:54:38 前端开发

如果在同步方法中调用 thread.yield() 是否会失去对对象的锁定?

我了解 Thread.currentThread().yield() 是对线程调度程序的通知,它可以将 cpu 周期分配给具有相同优先级的其他线程(如果存在).我的问题是:如果当前线程已锁定某个对象并调用 yield(),它会立即失去该锁定吗?而当线程调度器发现没有这样的线程来分配cpu周期时,调用yield()的线程将再次争夺锁定它之前丢失的对象?? 我在 javadoc 和论坛中找不到它 ..
发布时间:2022-01-22 20:11:31 Java开发

python3中的可选yield或return.如何?

我想要一个可以选择返回或产生结果的函数.这是一个例子. def f(option=True):...为了...:如果选项:产出结果别的:结果.追加(结果)如果不是选项:返回结果 当然,这是行不通的,我用 python3 试过了,不管我设置什么选项值,我总是得到一个生成器.据我了解,python 检查函数的主体,如果存在 yield,则结果将是生成器.有什么办法可以解决这个问题并制作一个可以随意 ..
发布时间:2022-01-19 15:20:12 Python

缓存 IEnumerable

public IEnumerable列表模块(){foreach (XElement m in Source.Descendants("Module")){yield return new ModuleData(m.Element("ModuleID").Value);}} 最初,上面的代码很棒,因为如果不需要,就不需要评估整个集合. 然而,一旦所有模块都被枚举一次,在没有变化的情况下重复 ..
发布时间:2022-01-19 15:07:27 C#/.NET

哪个通常更快,产量或附加?

我目前在一个个人学习项目中阅读 XML 数据库.我发现自己正在编写收集数据的函数,但我不确定返回它们的快速方法是什么. 这通常更快: yield 或 函数中的几个 append() 然后 return 随后的 list? 我很高兴知道在什么情况下 yields 会比 append()s 更快,反之亦然. 解决方案 yield 具有惰性的巨大优势,而且速度通常不是最好的 ..
发布时间:2022-01-19 15:06:53 Python

为什么我不能将收益与回报一起使用?

我希望您考虑以下代码: def func(alist):如果 len(alist) == 1:返回参数 * 2对于列表中的项目:产量项目 * 2 当我运行它时,我得到了这个错误: SyntaxError: 'return' with argument inside generator 现在,我意识到我无法做到这一点.但是,我想知道为什么.导致 Python 抛出 SyntaxError 的 ..
发布时间:2022-01-19 14:56:02 Python

使用委托从 C# 调用 IronRuby

是否可以使用委托作为参数从 C# 调用 IronRuby 方法,以使 yield 可以工作? 以下给了我一个错误数量的参数(1 代表 0) 异常. 动作动作=控制台.WriteLine;var runtime = Ruby.CreateRuntime();var engine = runtime.GetEngine("rb");引擎.执行(@“类 YieldTest定义测试yield '来 ..
发布时间:2022-01-18 12:44:41 C#/.NET

一些有助于理解“产量".

在我不断追求减少吸吮的过程中,我试图理解“yield"语句,但我一直遇到同样的错误. [someMethod] 的主体不能是迭代器块,因为'System.Collections.Generic.List' 不是迭代器接口类型. 这是我卡住的代码: foreach(headersXml.Root.Elements() 中的 XElement 标头){收益返回(Parse ..
发布时间:2022-01-10 14:20:48 C#/.NET

yield 语句实现

我想以易于理解的形式了解有关 yield 语句的所有信息. 我已经阅读了 yield 语句及其在实现迭代器模式时的易用性.但是,大部分都非常干燥.我想深入了解一下微软是如何处理收益率的. 另外,你什么时候使用yield break? 解决方案 yield 通过在内部构建状态机来工作.它会在例程退出时存储该例程的当前状态,并在下次从该状态恢复时存储. 您可以使用 Refle ..
发布时间:2022-01-10 14:14:14 C#/.NET

为什么在这个例子中使用序列比使用列表慢得多

背景:我有一系列连续的、带时间戳的数据.数据序列中有漏洞,有的很大,有的只是一个缺失值. 每当孔只是一个缺失值时,我想使用虚拟值修补孔(较大的孔将被忽略). 我想使用修补序列的延迟生成,因此我使用 Seq.unfold. 我制作了两个版本的方法来修补数据中的漏洞. 第一个消耗序列中带有孔洞的数据并生成修补后的序列.这就是我想要的,但是当输入序列中的元素数量超过 1000 时,这 ..
发布时间:2022-01-05 09:39:27 其他开发

生成器/块到迭代器/流的转换

基本上我想转换这个: def data(block: T => Unit) 到一个流(dataToStream 是一个进行这种转换的假设函数): val dataStream: Stream[T] = dataToStream(data) 我想这个问题可以通过延续来解决: //假设我们不知道数据是如何实现的//我们只知道它生成整数def data(block: Int => Unit) ..
发布时间:2022-01-03 08:50:54 其他开发

yield 是如何实现延迟加载的模式的?

yield如何实现延迟加载的模式? 解决方案 yield 实现只有在需要时才会到达代码. 例如这段代码: public IEnumerableGetInts(){收益回报1;收益率 2;收益率 3;} 实际上会编译成一个实现 IEnumerable 的嵌套类,GetInts() 的主体将返回该类的一个实例. 使用反射器可以看到: public IEnumerableGet ..
发布时间:2022-01-01 17:54:14 C#/.NET

在javascript中产生promise时会发生什么?

没有找到完整的答案.. 当 promise 被 yield 时会发生什么? 是这样的构造 var p = new Promise()p.resolve(值)功能 * (){产量 p} 相当于 function * (){屈服值} ? 更新 如何混合不同风格的异步编程,例如像koa这样的框架? Koa 中间件与生成器一起工作,但是有很多基于 Promise 的好 ..
发布时间:2021-12-29 10:09:46 前端开发

检查函数是否是生成器

我在 Nodejs v0.11.2 中使用了生成器,我想知道我如何检查我的函数的参数是生成器函数. 我是这样发现的 typeof f === 'function' &&Object.getPrototypeOf(f) !== Object.getPrototypeOf(Function) 但我不确定这是否是好的(并在未来工作)方式. 您对这个问题有何看法? 解决方案 我们在 T ..
发布时间:2021-12-23 11:49:17 前端开发