Ruby 重构问题
Ruby refactoring issue
假设我有一个 @array = [1 ,2 ,3]
我想为数组的每个数字创建三个块,其余部分如下所示:
@array.each do |first|
(@array - [first]).each do |second|
(@array - [first] - [second]) do |third|
#do something
所以每个块都遍历整个数组,除了前一个块正在使用的元素。但这有点难闻和重复,因为对于每个块我都需要删除前面的元素,重构这些块的最佳方法是什么?
谢谢
术语是排列。 Ruby 有一个 built-in 方法可以做到这一点:
@array.permutation(3) do |first, second, third|
# do something
end
假设我有一个 @array = [1 ,2 ,3]
我想为数组的每个数字创建三个块,其余部分如下所示:
@array.each do |first|
(@array - [first]).each do |second|
(@array - [first] - [second]) do |third|
#do something
所以每个块都遍历整个数组,除了前一个块正在使用的元素。但这有点难闻和重复,因为对于每个块我都需要删除前面的元素,重构这些块的最佳方法是什么?
谢谢
术语是排列。 Ruby 有一个 built-in 方法可以做到这一点:
@array.permutation(3) do |first, second, third|
# do something
end