问题标签 [enumerator]

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 投票
3 回答
307 浏览

c# - C# - 如何创建可更新的枚举器?

我对 C#(来自 PHP)有点新,我有点震惊,通过循环遍历一个列表,我无法传递对该变量的引用,即以下代码无效:

我进行了一些研究,发现了一个创建“可更新枚举器”的建议,但我无法弄清楚我应该如何做到这一点。我遵循了一个示例,并尝试为 IEnumerator.Current 方法和我的自定义枚举器 (PeopleEnum.Current) 添加 Current 设置器,但老实说,这是盲目的猜测并且不起作用。我将整个代码粘贴在 pastebin 中,因为在这里粘贴很长 -自定义枚举器尝试。在此代码中,尝试通过以下方式访问当前元素

导致预期的错误“属性或索引器可能不会作为输出或引用参数传递”

我最终的目标是这样的 - 遍历对象列表,为每个对象生成一个按钮,并为该按钮添加一个 onclick 事件,该事件将打开一个新表单,传递该对象的引用, 以便可以以该新形式编辑其内容。我做了所有这些,但是将对象作为参考而不是只读数据传递,这让我很生气。我将不胜感激任何答案,我可以在其中阅读有关可更新枚举数或想法的链接。

0 投票
2 回答
2892 浏览

haskell - 在 where 子句中键入签名

我编写了一个类似于Data.Enumerator.List.map使 an与提供不同类型的 anIteratee兼容的函数。EnumeratorStream

import Data.Enumerator

如果我省略 的类型签名go,这将正常工作。但是,我想包括它,但我无法确定正确的签名应该是什么。我认为应该是这样的:

go :: Monad m => Step ai m b -> Iteratee ao m b

但这不起作用。
我需要一些关于为go.

0 投票
3 回答
948 浏览

arrays - Ruby:操作迭代器?

在创建单向、惰性求值、潜在无限迭代器方面,我在使用 Ruby 时遇到了一些问题。基本上,我正在尝试像使用 Haskell 列表一样使用 Ruby,在较小程度上使用 Python 生成器。

并不是我不理解它们本身;我只是不知道如何像其他语言一样随意使用它们,而且我也不确定 Ruby 中的哪些方法会在我背后将它们变成数组,不必要地将整个序列卸载到内存中。

是的,我一直在研究 Ruby 参考手册。半个小时其实,用心。或者显然不是。

例如,如果我要实现一个卡片组,它在 Python 中看起来像这样(未经测试):

那么,我将如何在 Ruby 中做到这一点,完全避免使用数组?请注意,据我所知,上面的代码仅使用元组和生成器:在任何时候都不会像我使用数组那样将整个序列转储到内存中。我可能对上面的代码有误,但你得到了我想要的。

如何链接迭代器(如 Python 的 chain())?如何生成无限范围的迭代器(如 Python 的 count())?如何在不将整个过程转换为数组的情况下将数组添加到迭代器(例如将元组传递给 Python 的 chain())?

我见过解决方案,但它们涉及阵列或纤维等不必要的复杂性。

在 Python 中,我可以像数组一样简单地操作和抛出迭代器。我几乎可以将它们视为 Haskell 列表,这是我最熟悉的,也是我在编码时真正想到的。我对 Ruby 数组不满意,这就是为什么我寻求其他替代方案的帮助。

我已经设法在互联网上收集到有关它的信息,但我找不到任何涵盖 Ruby 中此类数据结构的基本操作的信息?有什么帮助吗?

0 投票
2 回答
878 浏览

objective-c - 使用 NSDirectoryEnumerator 对文件系统进行建模

我正在尝试从给定的起始路径对文件系统的结构进行建模。目标是NSOutlineView从该路径开始创建文件系统的标准。

我有一个名为fileSystemItem. 它具有以下(非常标准的)关系和属性:

  • parentItem (指向另一个fileSystemItem对象)
  • isLeafYES用于文件;NO用于文件夹)
  • childrenItems(其他数组fileSystemItems
  • fullPath( NSString; 对象的文件路径)

我的问题是:我如何使用NSDirectoryEnumerator来构建模型?如果我这样做:

startingPath如果我编写一个递归函数来查看其中的每个项目,并且如果该项目是一个文件夹,则在该文件夹上再次调用自身,依此类推,我可以看到如何构建模型。但是我怎样才能建立模型NSDirectoryEnumerator呢?我的意思是,这就是这个类存在的原因,对吧?

0 投票
1 回答
1491 浏览

ruby - 如何为 Range 创建自定义迭代器

我想创建 Range 的一个子类,以便指定一个不是 1 的步长,这样我就可以执行以下操作:

我的第一次实施尝试不起作用:

看来 RangeWithStepSize#each 正在返回一个有效的枚举器,但它没有枚举。知道为什么吗?

<aside>这可能是相关的,但我注意到没有块的 Range#step 不会返回文档中指定的枚举器;它返回一个数组:

数组是可枚举的,但它不是枚举器。这是文档错误吗?</aside>

澄清

我想制作一个封装步长的 Range 版本,所以我可以这样做:

...因此枚举 a 会产生 0.5 的步长,而 b 会产生 0.25。

0 投票
1 回答
735 浏览

loops - Comparison of enumerator vs. iteratee package

Currently, there two popular choices which implement the iteratee pattern:

What are their relative benefits? Is one better than the other, or does it depend on the use-case (and if so, what are the criteria to decide which one to use)?

0 投票
2 回答
2176 浏览

ruby - 如何在 Ruby 中实现枚举器?

例如:

相当于:

我知道a.delete_if返回一个枚举器。each但是当块返回 true时它怎么知道它应该删除对象呢?如何delete_if手动实现(以及在 Ruby 中)?

0 投票
3 回答
98 浏览

ruby-on-rails - 如何改进这段代码

我正在经营一家在线手袋商店,手袋可以有四种颜色——黑色、棕色、橙色和红色。我注意到黑色手袋比棕色手袋卖得更快等等。这意味着人们最喜欢黑色手袋。

在网上商店的主页上,我想选择并以网格布局显示 10 个包。所以我从选择黑色包包开始。如果我的库存中有 10 个或更多黑色袋子,那么我会停下来,不再寻找其他颜色的袋子。但是,如果我有 5 个黑色袋子,那么我会继续寻找棕色袋子。添加那些棕色袋子后,如果我仍然没有 10 个袋子,那么我会寻找橙色袋子等等。

下面是我尝试将解决方案实现为 Rails 模型方法:

虽然这可行,但我很好奇是否有更好的方法来编写它。特别是,我认为这段代码可以转换为使用 Ruby 的枚举器。

0 投票
1 回答
157 浏览

c# - 如何将这段 Java 代码翻译成 C#?

这是我想翻译成 C# 的 Java 代码:

logHeaders 是一个List<String>.

这是翻译后的 C# 版本,但每次尝试时都会出现编译器错误。

我将如何改变它?

0 投票
4 回答
1262 浏览

c# - 将未知的枚举值传递给函数

这是对这个问题的详细说明:c# Enum Function Parameters

我创建了一个小示例应用程序来介绍我的问题:

更新:这是 C# 编程语言的一个已知困难。我在代码中为在搜索引擎中找到它的人添加了使用过的解决方法。

我认为我应该做类似的事情:

但这也给了我编译错误。

谢谢您的帮助!