我思考了一下,这两种说法有语义上的区别吗?还是我们可以自由选择?
编辑 我接受了@roygbivs的回答,因为大多数答案建议选择哪个是个人口味问题,并且它并不真正改变含义。在这种情况下,既然through和over都没有任何信息(在特定语境中),它们可以被省略。
我思考了一下,这两种说法有语义上的区别吗?还是我们可以自由选择?
编辑 我接受了@roygbivs的回答,因为大多数答案建议选择哪个是个人口味问题,并且它并不真正改变含义。在这种情况下,既然through和over都没有任何信息(在特定语境中),它们可以被省略。
这不是对错问题,只是一些统计数据:
= 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日。仅计算代码出现次数。
我认为这取决于介词的对象;当你遍历一个iterator(迭代器)时,使用“over”,当你遍历collection(集合)、container(容器)、list(列表)、range(范围)时也使用“over”,但是当你遍历list(列表)的内容、container(容器)的元素、range(范围)的元素、collection(集合)的元素时却使用“through”。在几乎所有情况下它们是可以互换的;唯一我会使用“over”但不使用“through”的地方就是针对iterator本身;但对于任何可迭代的对象,我都会使用“over”或“through”。
我的建议是使用“迭代”,这也是我一直见到的写法。
两者基本上意思相同!
因此,可以自由选择任何一个适合自己的。
从技术上讲,这可能只是一个“迭代”周期。但无论哪种情况,你的意思都很明显。
我使用“循环”。很简单。
System.Collections.Generic.IEnumerator GetEnumerator() 的摘要文本如下:
返回一个枚举器,用于遍历集合。
个人认为应该使用 through... 但实际上我认为使用哪个都无所谓。
有一种更好的方法。
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.
这就像单词“has”一样,经常可以将整个句子简化为一个单词。
为什么不保持迭代,例如 -> 圆形、三角形、八边形、五边形、六边形。