像这样
range = (0..10)
Run Code Online (Sandbox Code Playgroud)
我怎么能得到这样的数字:
0 5 10
Run Code Online (Sandbox Code Playgroud)
每次加5次,但不到10次
如果range =(0..20)那么我应该得到这个:
0 5 10 15 20
Run Code Online (Sandbox Code Playgroud)
Amb*_*ber 25
尝试使用.step()在给定步骤中完成.
(0..20).step(5) do |n|
print n,' '
end
Run Code Online (Sandbox Code Playgroud)
给...
0 5 10 15 20
Run Code Online (Sandbox Code Playgroud)
正如dominikh所提到的,您可以.to_a在最后添加以获得可存储数字列表的形式:(0..20).step(5).to_a
http://ruby-doc.org/core/classes/Range.htmlstep中描述的方法应该可以完成这项工作,但是严重伤害 可能会损害可读性。
只要考虑一下:
(0..20).step(5){|n| print ' first ', n }.each{|n| print ' second ',n }
Run Code Online (Sandbox Code Playgroud)
您可能认为 step(5) 会产生一个新的 Range,就像 Why_的问题最初的意图一样。但是,如果您想“重用”0-5-10-15-20 范围,则每个都会在 (0..20) 上调用,并且必须由另一个步骤(5) 替换。
也许你会对类似的事情感到满意(0..3).map{|i| i*5}?
但“坚持”步骤方法的结果 .to_a 也应该很好。
| 归档时间: |
|
| 查看次数: |
5970 次 |
| 最近记录: |