问题标签 [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 投票
7 回答
7060 浏览

python - 在 Ruby 和 Python 中使用 yield 创建列表

我试图想出一种优雅的方法来从一个在 Python 和 Ruby 中产生值的函数创建一个列表。

在 Python 中:

在红宝石中:

虽然我喜欢同时使用这两种语言,但我一直对 Ruby 版本必须初始化列表然后填充它感到有些困扰。Python 的yield结果是简单的迭代,这很棒。Rubyyield调用一个块,这也很棒,但是当我只想填写一个列表时,感觉有点笨拙。

有没有更优雅的 Ruby 方式?

更新重做示例以显示从函数产生的值的数量不一定等于 x。

0 投票
4 回答
8521 浏览

python - Python,将 Popen 的流重定向到 python 函数

我是 python 编程的新手。我有这个问题:我有一个文本文件列表(压缩和未压缩),我需要: - 连接到服务器并打开它们 - 打开文件后,我需要获取他的内容并将其传递给另一个我写的python函数

为了详细说明这些文件中包含的信息。该函数的目的是使用 3 行仅在 1 行中写入存储在这些文件中的日志......该函数在从我的本地计算机读取的文件上运行良好,但我无法弄清楚如何连接到远程服务器和创建这些单行日志而不将每个文件的内容存储到一个字符串中,然后使用该字符串......我用来连接到远程机器的命令是:

retList[0] 和 retList[2] 是 user@remote 和我必须访问的文件夹名称

提前感谢大家!

更新:

我的问题是我必须先建立一个 ssh 连接:

我需要打开的所有文件都存储在一个列表中,fileList[],其中一部分是压缩的(.gz),一部分只是文本文件!我已经尝试了你在 bot 之前展示的所有程序,但没有任何效果......我想我必须修改 Popen 函数的第三个参数,但我不知道该怎么做!有没有人可以帮助我???

0 投票
3 回答
4723 浏览

c# - yield 语句实现

我想以易于理解的形式了解有关该声明的所有信息。yield

我已经阅读了该yield语句及其在实现迭代器模式时的易用性。但是,大部分都非常干燥。我想深入了解一下微软如何处理收益率。

另外,你什么时候使用yield break?

0 投票
4 回答
10323 浏览

ruby - Ruby 与计算机科学相关的 yield 特性

我最近发现了 Ruby 的块和产生特性,我想知道:这在计算机科学理论方面适合什么?它是一种函数式编程技术,还是更具体的东西?

0 投票
4 回答
30258 浏览

python - threading.Thread 如何在 Python 中产生剩余的量子?

我有一个正在轮询硬件的线程。

但是还有其他线程(和进程!)可能有事情要做。如果是这样,我不想烧毁 CPU 每隔一条指令检查一次硬件。自从我处理线程以来已经有一段时间了,当我处理线程时,它不是 Python,但我相信大多数线程库都有一个yield函数或允许线程告诉调度程序“给其他线程一个机会”的功能。

但是我在线程文档中找不到对此类内容的任何引用。Python 确实有一个yield声明,但我很确定这完全是另一回事(与生成器有关)。

在这里做什么是正确的?

0 投票
11 回答
8393 浏览

c# - C# IEnumerator/yield 结构可能不好?

背景:我有一堆从数据库中获取的字符串,我想返回它们。传统上,它会是这样的:

但是后来我认为消费者会想要遍历这些项目并且不关心其他太多,而且我不想将自己装进一个列表本身,所以如果我返回一个 IEnumerable 一切都很好/灵活的。所以我在想我可以使用“收益回报”类型的设计来处理这个......就像这样:

但是现在我正在阅读更多关于产量的内容(在这样的网站上......msdn 似乎没有提到这一点),它显然是一个懒惰的评估器,它保持填充器的状态,期待有人问下一个值,然后只运行它直到它返回下一个值。

在大多数情况下这似乎很好,但是使用数据库调用,这听起来有点冒险。作为一个有点人为的例子,如果有人从我从数据库调用中填充的 IEnumerable 中请求一个 IEnumerable,通过它的一半,然后陷入循环......据我所知,我的数据库连接正在进行永远保持开放。

如果迭代器没有完成,在某些情况下听起来像是自找麻烦……我错过了什么吗?

0 投票
3 回答
3461 浏览

python - mod_wsgi 产生输出缓冲区而不是返回

现在我有一个结构如下的 mod_wsgi 脚本..

我想知道是否有人知道一种方法可以将其更改为在yield基础上操作而不是return,这样我就可以在页面生成时发送页面,而不仅仅是在完成后发送,因此页面加载对用户来说可以更快。

但是,每当我将输出交换为列表并在 application() 中生成它时,它都会引发错误:

0 投票
1 回答
1486 浏览

c# - linq 中的“选择新”是否会触发评估/加载?

我目前正在尝试创建一个实现的类,IEnumerable<T>以便从通过 ParentId 属性相互引用的对象的平面列表构造层次结构。我想为此编写一个流畅的界面,这样我就可以做这样的事情

所以,关于 yield 语句,我想知道我是否可以在课堂上做这样的事情NodeHierarchy : IEnumerable<TabNode>

或者我是否必须做这样的事情:

0 投票
2 回答
800 浏览

c# - foreach 循环中的无限 IEnumerable

回答完这个问题后,我将以下 C# 代码放在一起只是为了好玩:

问题是我不喜欢需要将max参数传递给函数。现在,如果我不使用其中一个,代码将输出正确的数据,但随着 IEnumerable 继续工作,它似乎会挂起。我怎样才能写这个,以便我可以像这样使用它:

0 投票
3 回答
28023 浏览

c - Pthread - time.h::sleep() 和 pthread.h::pthread_yield() 有什么区别?

我花了很长时间寻找有关 time.h::sleep() 和 pthread.h::pthread_yield() 之间差异的信息,但找不到任何可靠的参考资料,所以我发布了这个问题。

time.h::sleep() 和 pthread.h::pthread_yield() 有什么区别?

更新:

我问的原因是因为我使用 sleep() 来 sleep() 每个单独的线程......当有 8 个线程和 4 个线程时,我的应用程序开始出现问题。当我上网查看 sleep() 是否只影响每个线程时,我找不到任何好的参考说明 Sleep() 是影响整个进程还是 sleep() 只影响单个线程。