A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Curso de Ruby

Curso de Ruby

Sim贸n Soriano

Sim贸n Soriano

Rangos

11/39
Recursos

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

Aportes 6

Preguntas 0

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Rangos

Que f谩cil es contar los elementos generados por un array

('aa'..'zz').to_a.count
=> 676
  • Aunque elementos decimales no pueden ser convertibles a un arreglo, si intentamos convertir un rango decimal a un arreglo nos va a devolver un error, por suerte si se pueden utilizar otros m茅todos determin铆sticos como include? o member?
  • Si el primer valor del rango es un entero y el segundo es un decimal, todo el rango se convierte en entero.
  • El valor decimal del ultimo dato del rango no es redondeado sino que es truncado (osea no se toma en cuenta el valor decimal, por lo que 4.4 y 4.6 quedan finalmente como un simple 4)
  • El valor de los rangos tienen que ser del mismo tipo, si pongo un numero y una letra, el rango no se crea, otra forma de crear el rango .
  • Los rangos tambi茅n pueden elaborarse a partir de otros tipos de objetos pero estos tienen que ser compatibles.

Conceptos extra铆dos de :

Dato espcecial 鈥楻ango鈥


Los rangos son un tipo de dato especial de Ruby, estos se declaran utilizando par茅ntesis y dos n煤meros separados por dos puntos. Estos nos sirven para hacer iteraciones y tambi茅n para generar Arrays

(1..6)

# Para generar Arrays
(1..6).to_a

Tambi茅n podemos declarar rangos, y es con 3 puntos. La diferencia de estos es que el de 2 puntos tiene un rango inclusivo y con 3 puntos es un rango exclusivo (o sea, que excluyen el l铆mite derecho)

# 2 puntos
(1..6).to_a # [1, 2, 3, 4, 5, 6]

# 3 puntos
(1...6).to_a # [1, 2, 3, 4, 5]

Los rangos tienen m茅todos parecidos a los Arrays

Tambi茅n se puede con n煤meros negativos 馃槷

(-100..-1).to_a
 => [-100, -99, -98, -97, -96, -95, -94, -93, -92, -91, -90, -89, -88, -87, -86, -85, -84, -83, -82, -81, -80, -79, -78, -77, -76, -75, -74, -73, -72, -71, -70, -69, -68, -67, -66, -65, -64, -63, -62, -61, -60, -59, -58, -57, -56, -55, -54, -53, -52, -51, -50, -49, -48, -47, -46, -45, -44, -43, -42, -41, -40, -39, -38, -37, -36, -35, -34, -33, -32, -31, -30, -29, -28, -27, -26, -25, -24, -23, -22, -21, -20, -19, -18, -17, -16, -15, -14, -13, -12, -11, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1] 

Creando con Rangos array de abecedario y seteandolo a una variable

abecedario = ("a".."z").to_a

Clases de rango
( 1 [limite izquierdo] 鈥 3 [limite derecho] )

Inclusivo = Incluye el limite derecho
(1鈥5).to_a = [1, 2, 3, 4, 5]

Exclusivo = Excluye el limite derecho
(1鈥5).to_a = [1, 2, 3, 4]

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