Rangos

El principal uso y quizás el más apropiado para los rangos, es expresar una secuencia: las secuencias tienen un punto inicial y un punto final, y una forma de producir los sucesivos valores entre ambos. En Ruby, esas secuencias son creadas usando los operandos .. y

.. genera una secuencia donde los puntos límites están incluidos.

(1..3).to_a
 
#es la secuencia 1, 2, 3

genera una secuencia en la que no está incluida el límite superior.

(1...5).to_a
 
#equivale a 1, 2, 3, 4

En Ruby los rangos no son almacenados como una lista: los rangos se almacenan como un objeto Range, y contiene referencias a dos objetos Fixnum (su límite superior e inferior). Se puede convertir un rango en un array ( array = lista, conjunto ordenado de elementos), mediante el método to_a.

(1..10).to_a
 
#obtenemos [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

métodos

Los rangos en ruby tienen diversos métodos:

nums = -1...9
puts nums.include?(5)   # true
puts nums.min           # -1
puts nums.max           # 8
puts nums.reject {|i| i < 5} # [5, 6, 7, 8]

Uno de los usos útiles de los rangos, es comprobar si un determinado valor está en el intervalo representado por el rango. Para eso usamos el operador ===

(1..10) === 5       # true  
(1..10) === 15      # false  
(1..10) === 3.14159 # true  
('a'..'j') === 'c'  # true
Si no se indica lo contrario, el contenido de esta página se ofrece bajo Creative Commons Attribution 3.0 License