在Ruby中,有没有一种方法可以使用hash.each_with_index做| [k,v],i |?

问题描述

| 否则,它必须是
h = {:a => 1,:b => 2.2}
h.each_with_index do |pair,i|
  k = pair[0]; v = pair[1]
  p k,v,i
end
并以这种方式设置
k
v
似乎有点笨拙。会更简单还是类似
h.each_with_index do |[k,v],i|
?     

解决方法

其实是!使用括号:
h = {:a => 1,:b => 2.2}
h.each_with_index do |(k,v),i|
  p k,v,i
end
    ,Inject调用应该可以得到您想要的内容,http://www.ruby-doc.org/core/classes/Enumerable.src/M001494.html检查并滚动到Inject部分,应该像个魅力一样起作用!