Ruby 编码:数字对序列"x,y"使得 x 的范围从 0 到 3,y 的范围从 5 到 7

  • 本文关键字:范围 编码 数字 Ruby 使得 ruby
  • 更新时间 :
  • 英文 :


我被困在这个问题上。我试图用Ruby来解决它。

我的答案是

4.times{|i| puts "#{i}"} && 5.upon(7){|i| puts "#{i}}

但是,我不确定它是否正确。

这应该适合您

result = (0..3).to_a.product((5..7).to_a)
puts result.inspect
#=> [[0, 5], [0, 6], [0, 7], [1, 5], [1, 6], [1, 7], [2, 5], [2, 6], [2, 7], [3, 5], [3, 6], [3, 7]]

不确定是否正确

通常,在这种情况下,您尝试运行代码。如果你这样做了,你会注意到(增量地)你缺少一个引号,没有像Fixnum#upon这样的方法(upto会这样做),代码一次只输出一个数字,从不输出一对,并且第二个循环不运行(因为times返回nil, 并且nil && x短路,因此x无法评估)。

至于你的问题,它要求数字对的顺序,而不是它的显示,所以不需要puts。此外,由于您需要对,因此您应该嵌套两个循环,而不是一个接一个。

(0..3).flat_map { |x| (4..7).map { |y| [x, y] } }

将是一种简单的编写方法。

编辑:flat_mapmap.flatten更酷。不过,马切克的答案更具体+1。

相关内容

最新更新