使用i和k值迭代Ruby上的列表

rab*_*ple 2 ruby iteration each loops

我在ruby中找不到这个代码的优雅解决方案.基本上我想做的是用c ++的方式

for (int i=0;i<list.length;i++)
  {for(int k= i+1; k<list.length; k++)
    {cout<< list[i]<<" "<<list[k]}}
Run Code Online (Sandbox Code Playgroud)

但不幸的是,我找不到一个优雅的方式来做这个在红宝石.任何人都可以帮我吗?

mat*_*ewd 9

mudasobwa的答案是一个相对字面的翻译,但使用专用方法更为惯用,Array#combination:

list.combination(2) do |el1, el2|
  puts "#{el1} #{el2}"
end
Run Code Online (Sandbox Code Playgroud)