在Ruby中,有没有办法使用hash.each_with_index这样的东西做| [k,v],i |?

时间:2011-05-24 22:13:07

标签: ruby

否则,它必须是

h = {:a => 1, :b => 2.2}
h.each_with_index do |pair, i|
  k = pair[0]; v = pair[1]
  p k, v, i
end

并以这种方式设置kv似乎有点笨拙。可以更简单或类似

h.each_with_index do |[k,v], i|

2 个答案:

答案 0 :(得分:100)

事实上,是的!使用括号:

h = {:a => 1, :b => 2.2}
h.each_with_index do |(k, v), i|
  p k, v, i
end

答案 1 :(得分:1)

Inject调用应该得到你想要的,http://www.ruby-doc.org/core/classes/Enumerable.src/M001494.html检查并滚动到Inject部分,应该像魅力一样工作!