我想使用 for-each 和计数器:
i=0
for blah in blahs
puts i.to_s + " " + blah
i+=1
end
有更好的方法吗?
Note:我不知道是否blahs
是一个数组或一个散列,但必须这样做blahs[i]
不会让它变得更性感。我也想知道怎么写i++
在红宝石中。
从技术上讲,马特和斯奎吉的答案排在第一位,但我对悖论给出了最佳答案,因此在各点上稍微分散了一下。他的回答还包含有关版本的注释,这仍然是相关的(只要我的 Ubuntu 8.04 使用的是 Ruby 1.8.6)。
应该用过puts "#{i} #{blah}"
这更加简洁。
正如人们所说,你可以使用
each_with_index
但是如果您想要索引的迭代器与“each”不同(例如,如果您想使用索引或类似的东西进行映射),您可以将枚举器与each_with_index方法连接起来,或者简单地使用with_index:
blahs.each_with_index.map { |blah, index| something(blah, index)}
blahs.map.with_index { |blah, index| something(blah, index) }
您可以从 ruby 1.8.7 和 1.9 开始执行此操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)