像这样
range = (0..10)
如何获得这样的数字:
0 5 10
每次加上五,但不能超过十
如果范围是 (0..20) ,那么我应该得到这个结果:
0 5 10 15 20
.step()
以给定的步长进行遍历。(0..20).step(5) do |n|
print n,' '
end
提供给定列表中第n个元素的JavaScript函数
0 5 10 15 20
正如dominikh所提到的,你可以在末尾添加.to_a
来获取一个可存储的数字列表形式:(0..20).step(5).to_a
像Dav所说的那样,但要添加to_a:
(0..20).step(5).to_a # [0, 5, 10, 15, 20]
to_a
,除非您确实需要一个数组。 - Konrad Rudolphstep
方法应该可以完成任务,但是可能会影响可读性。(0..20).step(5){|n| print ' first ', n }.each{|n| print ' second ',n }
(0..20).step(5).each{...}.each{...}
会按照你的意愿执行。 - Marc-André Lafortunestep(5)
(没有块)返回一个枚举器,将产生5次。这个枚举器被each
两次返回。让你感到困惑的是,step(5){a block}
返回原始的可枚举对象,所以进一步的each
将操作整个范围。 - Marc-André Lafortune(0..20).step(5).map{print '.'}.each{print '!'}
返回 .....!!!!! => [nil, nil, nil, nil, nil]
。.each
会对 .map
的返回值进行操作。 - Micka