是“迭代”或“迭代”某些东西?[关闭]


74

只是考虑了一下。有语义上的区别,还是我们可以自由选择?

编辑我接受了@roygbivs的答案,因为大多数答案都表明,选择哪一个只是一个口味问题,它并没有真正改变含义。在这种情况下,由于直通上方完全不携带任何信息(在该特定上下文中),因此可以将其忽略。


5
我会说“反复通过”,但英语不是我的母语。
zneak

9
这既不是throughover。两者都是无用的副词。你会简单地说iterateI am writing code to iterate the collection. 否则,这就好比说出两次迭代的含义。

Answers:


76

“通过”和“结束”是无用的副词。

例子:

  • 在迭代此集合时,我的代码抛出错误。

  • 此代码对集合进行迭代。

  • 您的任务是编写迭代集合的代码。

就像说“北上”或“南下”一样。“向上”和“向下”是没有用的。相反,您应该说:“我夏天要北上。” 或“在南部,他们种棉花。”


9
我觉得它们是副词,而不是副词,但两者的定义似乎都很灵活,取决于您如何解析句子。您要简化的短语动词吗?遍历=>遍历?还是您用介词迭代为不及物动词,然后简化为及物动词?
Mark Canlas 2010年

7
正如Mark所指出的,“通过”和“结束”是介词。那你怎么说呢?您是否只是简单地“迭代容器”?这听起来对我来说根本不对。
Michael Aaron Safyan

1
@Michael,这听起来可能不正确,因为我们(共同)将迭代与throughover结合使用。罗伊给出了与一个很好的例子向上向下与方向。我使用了迭代列表/控件,过了一会儿,它变得更自然,也变得无用,没用。
IAbstract

2
对我来说,迭代某些事物意味着重复它;它听起来像是循环遍历的同义词。在另一方面,叠代通过通常在这个意义上使用。
ondra.cifka,

52

不对或错,只是一些统计信息:

= term =           = Google =   = Github =
"iterate over"      1,440,000   10,569,846 search results
"iterate through"     908,000    5,605,973
"iterate thru"         44,200      141,982
——————————————————————————————————————————
"iterate on"          402,000      187,576
"iterate in"           63,300      117,962
"iterate across"       10,900      208,342
"iterate within"        8,470       14,577
"iterate along"         8,060        6,396
"iterate among"         5,970        2,960
"iterate against"       2,580        3,255
"iterate inside"        2,450       35,060
"iterate amongst"         406       22,274
"iterate amidst"           66            0

Google统计信息于2018年4月25日更新。随后的搜索显示结果不稳定。
Github统计信息于2018年4月25日更新。仅计算代码出现次数。


有趣的答案,我不知道Google提供了这么好的报告,如何在Google上这样搜索?
卢卡斯·皮雷斯

1
@LucasPires这是手动组装的🙃–
kennytm

18

我认为这取决于介词的目的。您遍历迭代器,集合,容器,列表,范围等。但是,您遍历列表(的内容),容器的(元素),遍历的(元素) )范围,通过集合的元素(等等)。在几乎所有情况下,它们都是可互换的;关于迭代器本身,我唯一会使用“ over”而不是“ through”的地方是;但对于任何可迭代的对象,我将使用“ over”或“ through”。


1
这种区别听起来最好。顺便说一句,“结束”听起来更肤浅,就像您是外部消费者一样。但是“直通”听起来更个性,更亲密。好像您是实施者,而您正在编写枚举数。
Mark Canlas 2010年

1
我没有问题(以英语为母语)遍历列表,范围或集合。实际上,“遍历”总是听起来不对。@Mark,根据定义,迭代是外部的。所以结束永远是最好的。
jmucchiello,2010年

@jmucchiello,我相信我们有误会;请注意,我写了“在范围内迭代”和“通过范围内的元素”。我同意over听起来更自然,但是我认为在大多数情况下,“直通”听起来都不错,除了迭代器本身外,在这种情况下,“ through”听起来比“ over”更为尴尬。
Michael Aaron Safyan'4

我认为马克说的没错。外面是外面,里面是通过声音。我的问题是,我认为迭代器永远不会存在于里面,因此即使在您的情况下Michael也永远不会认为透彻是正确的。如果我有汽车列表,则将迭代汽车列表。我不会说“我遍历集装箱的车厢。” 或通过集装箱的汽车部件。或通过集装箱中的各种汽车。这些听起来都不好。
jmucchiello

16

我会说遍遍,这就是我一直看到它写的方式。


6
然而,在Google中,“遍历集合”所产生的结果要比“过度”且没有介词的结果要多得多……
Timwi 2010年

7

两者本质上是相同的!

因此,您可以自由选择适合您的选项。


3

我总是说“迭代结束”,因为它强调了一个相对重要的事实,即迭代器本身不包含在作为迭代对象的容器中。

对我来说,“反复浏览”意味着一个人正在依次查看容器的每个元素,这实际上并不是正在发生的事情。

相比之下,称“叠代”意味着对我来说,一个是接收外部把手反过来容器中的每个元素,这真的发生了什么。

但是,“迭代通过”没有任何问题,并且任何了解迭代器的人都一定会理解这两个短语。


1

从技术上讲,这可能只是“迭代”时期。但是,无论哪种情况,您的意思都是显而易见的。



1

System.Collections.Generic.IEnumerator GetEnumerator()的摘要文本显示:

返回一个枚举迭代通过集合。

我个人通过...说出来,但实际上我认为您使用哪一个都不重要。


0

重要的词是迭代,使用它填充的内容实际上并不重要。


0

我以“反复浏览”的方式想象图片,就像我制作文件柜一样。考虑到我的心理形象,也许这只是个人喜好-我认为“迭代结束”是更常见的用法。


0

我会随机使用这两者,有时会用同一句话。删除连接词是不好的语法,两者都没有意义。


0

我认为它们在大多数实际用途中都是可以互换的,但是在我的评论中,我个人倾向于使用它们以一个很小的区别:我的解释是“重复”某些内容,类似于您会说“我会仔细查看” ”。也就是说,这不是深入的检查:您正在浏览它以查找某些内容。相反,“反复通过”是有目的地遍历每一个。

因此,如果我只是在列表中搜索一个项目,那么我会说我正在“迭代”列表.....如果我对每个项目进行某种转换,则将是“迭代遍历”。


0

词典中的“ iterate”是及物动词,意为“再说或再做一次;重复”。

您会“重复”您刚才说的话,还是“重复通过”它?我想你只是重复一遍。或者只是简单地迭代它,如您所愿。

话虽如此,如果您使用“迭代”作为“循环”的某种代名词...也许一次迭代一次就遍历数据,那么也许您就在“迭代中”。这是雷区!


0

要么是夸夸其谈 重言式。您应该删除多余的介词。如

“此循环迭代了前十大产品”

也许

“我正在迭代答案以寻找一个可以接受的答案”


+1只是为了说明这是一个重言式..我要补充一下。而不是那么长的“这是一个无用的副词”:D

0

Common Lisp的LOOP宏使用for element in list,但是for element across array(它有所不同,因此编译器可以生成更有效的代码...是的,这很奇怪),这表明介词并不那么重要。


0

有一个更好的办法。

J's members are dissimilar, but all can be incremented.
Having incremented every member of 'J' ...
J contains incrementable elements.
J refers to several items.
J refrances several items.
Everything in J is incrementable.
Everything J refers to should necessarily be thought of as being storable in a set.
Sequentially referring to J's contents ...
Apply between each element of J and R until all possible compatible pairs have been found.
Ask J using it's 'ask' function to sequentially apply addition between it's contents and return the result.

就像“有”一词一样,它通常可以将整个情感减少为一个单词。

为什么不保持迭代进行迭代,例如->圆形,三角形,八边形,五边形,六边形。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.