ruby - tag - sobre el rango de rubí?
tag wbr (3)
Como dijo Dav, pero agrega a_a:
(0..20).step(5).to_a # [0, 5, 10, 15, 20]
Me gusta esto
range = (0..10)
¿Cómo puedo obtener un número como este?
0 5 10
más cinco cada vez pero menos de 10
si rango = (0..20) entonces debería obtener esto:
0 5 10 15 20
El método de step
descrito en http://ruby-doc.org/core/classes/Range.html debería hacer el trabajo pero perjudica gravemente Puede dañar la legibilidad.
Solo considera:
(0..20).step(5){|n| print '' first '', n }.each{|n| print '' second '',n }
Puede pensar que el paso (5) produce un nuevo Rango, como la pregunta de por qué pretendía inicialmente. Pero cada uno se llama en el (0..20) y debe ser reemplazado por otro paso (5) si desea "reutilizar" el rango 0-5-10-15-20.
Tal vez usted estará bien con algo como (0..3).map{|i| i*5}
(0..3).map{|i| i*5}
?
Pero " persistir " en los resultados del método de pasos con .to_a
también debería funcionar bien .
Intente usar .step()
para pasar en un paso determinado.
(0..20).step(5) do |n|
print n,'' ''
end
da...
0 5 10 15 20
Como lo menciona dominikh, puede agregar .to_a
al final para obtener una forma almacenable de la lista de números: (0..20).step(5).to_a