Ruby重构问题

时间:2015-02-04 22:55:42

标签: ruby refactoring

假设我有@array = [1 ,2 ,3] 我想创建每个数组的三个块,其余的如下:

@array.each do |first|
  (@array - [first]).each do |second|
    (@array - [first] - [second]) do |third|
      #do something

因此,除了前一个块使用的元素之外,每个块都遍历整个数组。但这有点臭和重复,因为对于每个块我需要删除前面的元素,重构这些块的最佳方法是什么?

由于

1 个答案:

答案 0 :(得分:2)

该术语是排列。 Ruby有一个built-in方法:

@array.permutation(3) do |first, second, third|
  # do something
end