【发布时间】:2011-07-29 11:17:57
【问题描述】:
有没有一种更简单、更简洁的方式来编写这样的代码:
(1..10).each do |i|
(1..10).each do |j|
(1..10).each do |k|
(1..10).each do |l|
puts "#{i} #{j} #{k} #{l}"
end
end
end
end
理想情况下,我可以做类似...
(1..10).magic(4) { |i, j, k, l| puts "#{i} #{j} #{k} #{l}" }
甚至更好...
magic(10, 4) { |i, j, k, l| puts "#{i} #{j} #{k} #{l}" }
如果没有内置的东西,我怎么写像上一个这样的方法?
【问题讨论】:
-
你期望什么输出?是
1 2 3 4 \n 5 6 7 8 \n 9 10还是0 0 0 1 \n 0 0 0 2 ...? -
@nash 没有;第一个代码自行运行。如果您将所有
(1..10)调整为(0..9),那么您将得到'0 0 0 0', '0 0 0 1',...'9 9 9 8', '9 9 9 9'。 -
这是 stackoverflow.com/questions/5226895/… 的副本,但我更喜欢这个问题的答案。
标签: ruby loops iteration coding-style