Hoy veremos algunas operaciones básicas con arreglos en Ruby. Se trata de agregar (operación push) elementos a un arreglo existente, así como de eliminar (pop o unshift) elementos de un arreglo a través del índice.
Los arreglos funcionan cuando tenemos que guardar una lista de elementos en memoria y se necesita manipularla.
Con Ruby hay muchas formas de agregar o quitar elementos de arreglos, veremos muchas de ellas.
Lecturas recomendadas
Sé que no tiene nada que ver con Ruby, pero te invito a ver un ejemplo de pilas en C.
Agregar elementos a arreglo
Para añadir un elemento a un arreglo se pueden usar los métodos que se ven abajo. Algunos ejemplos de uso están al final de este apartado, antes de ver cómo se eliminan elementos de un arreglo.
unshift
El método unshift
agrega el elemento al inicio del arreglo y recorre los demás a la derecha.
push
Es como unshift
pero ahora pone el elemento al final y agranda el arreglo.
insert
Permite insertar uno o más elementos a un arreglo, pero ahora se puede especificar la posición en donde se va a insertar.
Operador <<
Este operador que fue usado al trabajar con CSV también se puede usar en los arreglos y funciona de manera similar a push
.
Ejemplo de uso
Aquí el código en donde se agregan elementos a un arreglo de 4 formas distintas:
arreglo = ["Ruby", "Perl", "C", "Go", "Rust"]
=begin
Comenzamos viendo cómo agregar elementos
al arreglo, expongo 4 formas
=end
# Para agregar elementos podemos usar unshift, push, insert o <<
# unshift pone un elemento al inicio
arreglo.unshift("Python")
puts "Después de unshift es #{arreglo}"
# push al final
arreglo.push("C++")
puts "Después de push es #{arreglo}"
# Insert permite insertarlo en determinada posición, además de
# que permite insertar varios
arreglo.insert(1, "JavaScript", "PHP") # Ponerlos desde la posición 1
puts "Después de insert es #{arreglo}"
# Y finalmente, << funciona como push
arreglo << "Kotlin"
puts "Después de << es #{arreglo}"
Quitar elementos de un arreglo
Ahora veamos la operación inversa de agregar elementos a un arreglo, la cual es quitar o eliminar elementos de un arreglo.
Para esto existen 4 formas, y ahora vamos a verlas.
pop
Quita el último elemento del arreglo
shift
Quita el primer elemento del arreglo
delete_at
Quita un elemento pero basado en su índice
delete
Quita un elemento pero basado en su valor (qué bonita función, se extraña mucho en otros lenguajes); por cierto, quita todas las ocurrencias.
Ejemplos de quitar elementos a un arreglo
Aquí está el código de ejemplo:
=begin
Ahora veamos cómo eliminar elementos
de un arreglo, expongo 4 formas
=end
# pop quita el último, es como las operaciones con pilas
arreglo.pop
puts "Después de pop es #{arreglo}"
# shift es lo contrario de unshift, elimina el primer elemento
arreglo.shift
puts "Después de shift es #{arreglo}"
# delete_at elimina en un índice en particular
arreglo.delete_at 7
puts "Después de delete_at es #{arreglo}"
# Y finalmente, delete elimina no usando el índice,
# sino el valor. Por cierto, elimina todas las ocurrencias
arreglo.delete "Perl"
puts "Después de delete es #{arreglo}"
Poniendo todo junto
Si quieres, descarga el código, instala Ruby y ejecuta ruby main.rb
.
Mira más sobre Ruby.