我需要从 1
循环到给定的数字 A
。我使用以下代码实现:
(1..A).step(1) do |n| puts n end
有没有比这更好的方法?
我的默认步长将为1。
在这种情况下,更符合习惯(或者可以说更符合语言习惯)的方式是使用Integer#upto
方法:
1.upto(A) { |n| puts n }
此外,step(1)
是默认值,你可以直接迭代范围本身:
(1..A).each { |n| puts n }
或者,甚至使用Integer#times
:
A.times { |n| puts n + 1 }
请注意,Integer#times
从 0
开始计数,因此需要加上 +1
。
NB请注意下面@Stefan的非常有价值的评论。
1
,1..A
和A
(因为它们都返回接收器)。 - Stefan
puts *1..A
- Stefan