Crear Listas o Arrays en Ruby

Cuando hablamos de arrays y listas en Ruby estamos hablando de un mismo tipo de objeto, ya que solo existe uno, el tipo Array. Este es un contenedor de elementos ordenados de cualquier tipo de objeto que pueden ser accedidos usando índices positivos (iniciando en 0) e índices negativos (iniciando en -1).

Los arrays o listas vacías en Ruby son muy fáciles de crear:

1. Usando corchetes vacíos: […]

2. Llamando al constructor new.

3. Usando la función Array().

1. Usando corchetes vacíos: […].

Es la forma más sencilla y fácil de crear un array o lista en Ruby, solo debemos hacer lo siguiente:

array = []

Escribimos el nombre de la variable y después del operador de asignación «=» escribimos un par de corchetes [] vacíos; de esta forma estamos creando un array vacío o con cero elementos.

Añadiendo elementos.

También podemos crear arrays con elementos por defecto agregandolos dentro de los corchetes [] y separándolos por coma «,» de la siguiente forma:

array = [1, 5, 10, "Hola", true, 25.4]

En este caso hemos creado un array o lista con 6 elementos, todos son objetos de diferentes tipos; esta flexibilidad es una gran ventaja que tiene Ruby a la hora de manejar datos en las listas.

2. Llamando al constructor new.

Otra forma de crear arrays o listas en Ruby es usando el constructor new, de la siguiente manera:

array = Array.new

Aquí hemos creado un array vacío, igual que usando los corchetes [] vacíos.

Añadiendo elementos.

Hay 3 formas de agregar elementos a un array usando el constructor new:

* Llamando al constructor con 1 argumento:

array = Array.new(5)

El constructor new también puede recibir argumentos para indicarle a Ruby el tamaño inicial que va a tener nuestro array, en este caso es un tamaño de 5 elementos; pero al iterar sobre este array, usando el siguiente código:

array.each do |e| 
  if e == nil
    print "nil " 
  end
end
puts ""

El resultado será el siguiente:

nil nil nil nil nil

Nos encontramos con que hay 5 elementos «nil» agregados en el array recién creado, sin que le hayamos indicado a Ruby que tipo elementos deseamos agregar; este es el comportamiento por defecto, rellenar el array con solo elementos «nil» según el tamaño inicial indicado en el constructor new.

* Llamando al constructor con 2 argumentos:

array = Array.new(5, "Hola Mundo!")

También podemos llamar al constructor new con 2 argumentos, el primero le indica a Ruby cual es el tamaño inicial del array y el segundo es el elemento por defecto que va a ocupar los 5 espacios del array.

Al iterar sobre este array, usando el siguiente código:

array.each do |e| 
  print "#{e} "
end
puts ""

El resultado será el siguiente:

Hola Mundo! Hola Mundo! Hola Mundo! Hola Mundo! Hola Mundo!

El array contiene 5 elementos de tipo string en lugar de 5 elementos de tipo «nil», como ocurre si se llama al constructor new con un solo argumento.

* Llamando al constructor usando un bloque Closure:

array = Array.new(5) { |x| x + 1 }

El bloque Closure toma como referencia el valor que es pasado como argumento al constructor new e itera sobre un rango de «n» números que van desde 0 hasta n – 1, en este caso sería desde 0 hasta 4; mientras que cada valor es asignado a la variable «x», luego se suma 1 y se almacena en el array que deseamos crear.

Al iterar sobre este array, usando el siguiente código:

array.each do |e| 
  print "#{e} "
end
puts ""

El resultado será el siguiente:

1 2 3 4 5

El array fue creado con un tamaño inicial de 5 elementos de tipo entero, en lugar de 5 elementos «nil» como se mostró al inicio. Estas son las 3 formas de crear arrays o listas usando el constructor new.

3. Usando la función Array().

Esta función nos permite crear un objeto de tipo Array de varias formas ya que recibe diferentes argumentos que veremos y que hacen de esta función un método útil para crear arrays o listas en Ruby.

* Crear array vacío:

Si queremos crear un array vacío solo debemos invocar a la función Array() de la siguiente manera:

array = Array(nil)

Pasando a nil (null en otros lenguajes) como único argumento. Esto es equivalente a:

array = []

O también es equivalente a:

array = Array.new

* Crear array desde un rango de números:

Si lo que deseamos es crear un array cuyos elementos sean un rango de números, solo debemos invocar a la función Array() de la siguiente manera:

array = Array(1..10)

Pasamos la el rango como argumento, en este caso creamos un array con 10 elementos de tipo numérico desde 1 hasta 10; esto es equivalente a la sintaxis:

array = Array.new(10) { |x| x + 1 }

Si iteramos sobre el array creado de ambas formas usando el siguiente código:

array.each do |e| 
  if e == nil
    print "nil "
  else
    print "#{e} "
  end
end
puts ""

Nos produce el siguiente resultado:

1 2 3 4 5 6 7 8 9 10

* Crear array desde otra lista o array:

Si tenemos una lista o array que ha sido creado con anterioridad, podemos usarlo para crear un nuevo array usando la función Array() de la siguiente forma:

array1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
array2 = Array(array1)

Pasamos como argumento el array que deseamos usar como base para crear nuestro nuevo array, esto lo que realmente hace es realizar una copia de array1 en array2 y ahora ambos poseen los mismo elementos. También podemos crear el array pasando una lista literal, de la siguiente forma:

array2 = Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

* Crear array o lista con un solo elemento:

Si por el contrario deseamos crear un array inicializado con 1 solo elemento, solo debemos invocar la función Array() de la siguiente forma:

array = Array(5)

Ahora el array ha sido creado y contiene el número 5 como su único elemento. Como se puede observar Ruby nos da muchas formas para crear listas o array de formas muy sencilla, ya es decisión del programador escoger cuál se adapta mejor a sus necesidades.

Añadir un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *