【发布时间】:2013-10-04 11:19:25
【问题描述】:
如何同时在 ruby 中迭代两个数组,我不想使用 for 循环。 例如,这是我的数组=
array 1=["a","b","c","d"]
array 2=[1,2,3,4]
【问题讨论】:
-
无论如何你都不应该使用
for。你几乎总是想要each。 -
@theTinMan 除非你用有效的论据来支持你的主张(而且我已经提供了我的论据)——说我写的“毫无意义”只是侮辱(虽然我没有冒犯;) )。我知道 Ruby 程序员使用
for循环并不“常见”,但我看不出有什么好的理由。我完全同意这个人:paulphilippov.com/articles/enumerable-each-vs-for-loops-in-ruby -
@alfasin 你用 Ruby 2.0 运行过这个基准测试吗?差异很小,但
for版本最慢。 -
for,当用于遍历数组时,还会公开应该是临时变量来保存元素的内容。这个新的临时变量使命名空间混乱,不像使用带有each的块,它创建一个新的范围,隔离它的临时变量,当块退出时消失。此外,for是使用each构建的,因此您会为语法糖增加一些额外的复杂性,从而减慢您的代码。暴露垃圾变量和减慢执行似乎是避免它的好理由。
标签: ruby