Tag Archive for arreglos

Operaciones usando arreglos con Ruby

Los arreglos tienen utilidad en muchísimas aplicaciones, en el artículo anterior vimos cómo definirlos en Ruby, y en éste veremos algunas operaciones básicas utilizando arreglas, todas éstas provenientes del Kernel de Ruby.

La primera operación que querrás ejecutar sobre un arreglo, seguramente será la de recorrerlo, es decir, ir a través de todos sus elementos, ya sea para usarlos o para buscar algún elemento.

Mi ciclo de recorrido favorito en Ruby, es el que se ejecuta a través del método each, éste método pertenece a la clase Array en Ruby, lo que significa que todos los arreglos lo tienen. Cabe mencionar que hay varias formas de recorrer arreglos en Ruby además de las que veremos (un par), luego de haber dicho ésto veamos el ejemplo:

lenguajes = ["Ruby","Python","JAVA","javaScript"]
lenguajes.each do |lenguaje|
  puts lenguaje
end

Lo que me gusta acerca de each es lo claro de la sintaxis, es decir, a simple vista puedes ver cómo funciona el método. Si aún hay cosas que no te quedan claras, te explico. El método each se aplica sobre el arreglo, en el ejemplo, nuestro arreglo es lenguajes, y se manda un bloque (ojo con esto), este bloque itera cada elemento dentro del arreglo y lo almacena sobre la variable lenguaje, es decir, en cada iteración, el elemento actual está en lenguaje, por eso si ejecutas lo anterior verás como con puts, imprimimos cada cadena del arreglo.

Lo anterior, fue algo bastante del estilo Ruby, si quieres algo más convencional podrías recorrer el arreglo con un ciclo for in, veamos el ejemplo:

for i in lenguajes
  puts i
end

Como ves, esto es algo más parecido a lenguajes comunes como JAVA, i es la variable que toma el valor dentro del arreglo, que en este ejemplo retomamos el anterior arreglo lenguajes. Sencillo ¿no?

Veamos ahora algo un poco más complicado. Lo que veremos es el método map, que también es parte de la clase Array. Map, itera cada uno de los elementos, le aplica las modificaciones que tú definas en un bloque, y retorna un nuevo arreglo con las modificaciones, aquí el ejemplo:

lenguajes = ["python","ruby","java"] #todos minusculas
nuevoArreglo = lenguajes.map{|lenguaje| lenguaje.capitalize}
nuevoArreglo.each do |l|
   puts l
end

Te invito a que pruebes el anterior ejemplo en tu instalación de Ruby, lo que verás es cómo cada uno de los elementos en lenguaje se pasan a nuevoArreglo, pero con la primera letra en mayúsucula (por el método capitalize), como verás, map también se ejecuta con un bloque, ésta vez delimitado por {}, adentro definimos una variable para almacenar cada iteración del arreglo, llamada lenguaje, y luego modificamos la variable, en éste ejemplo colocamos la primera letra en mayúscula, genial ¿no?

Lo anterior puede que haya sido un poco complejo si estás iniciando a programar, no te preocupes si no te quedó del todo claro, te aseguro que en el momento en que requieras una operación como la anterior, podrás venir aquí y todo quedará más claro.

Existen muchísimas otras operaciones que se pueden ejecutar con arreglos, por ejemplo ordenarlo:

calificaciones = [10,8,6,9]
calificaciones.sort

Obtener el tamaño del arreglo:

calificaciones.size()

Y así podríamos seguir mencionando otros, pero para no complicar más el curso básico, lo dejaremos ahí por ahora.

Bien, por ahora dejaremos los arreglos para que en el siguiente artículo pasemos a ver los Hashes o Diccionarios.

Arreglos en Ruby

Los arreglos, son estructuras que almacenan elementos de diferentes tipos, o al menos así son en Ruby, también puedes almacenar elementos de un solo tipo.

Los arreglos sirven para poder estructurar información y acceder a ella a través de un index, éste index es la posición que los elementos tienen dentro del arreglo, siendo el primero 0.

Para no confundirnos tanto con pura teoría, veamos cómo crear un arreglo en Ruby, es muy sencillo:

nombres = []

Como ves, un arreglo se define utilizando [] como delimitadores de lo que contiene el arreglo, también puedes hacerlo como instancia de la clase Array:

nombres = Array.new

Ahora bien, si queremos iniciar el arreglo con ciertos valores adentro, es tan sencillo como lo siguiente:

lenguajes = ["Ruby", "Python", "PHP", "C", "JAVA"]

El arreglo anterior tiene 5 elementos y como te mencionaba antes, es posible acceder a cada uno de ellos utilizando su posición, es muy importante que recuerdes que en los arreglos la posición inicial es la 0. Veamoslo en un ejemplo:

lenguajes = ["Ruby", "Python", "PHP", "C", "JAVA"]
puts "Estamos aprendiendo a programar arreglos en #{lenguajes[0]}"

 

Lo anterior, imprimirá que estamos aprendiendo arreglos en Ruby, puesto que accedimos a la posición 0 del arreglo que almacena la cadena Ruby.

Como dije al principio, los arreglos pueden almacenar estructuras u objetos de cualquier tipo, incluso otros arreglos:

ejemplo = ["Hola",1.1,2,[5,":D"]]

Lo anterior es válido en Ruby, hasta ahora todo ha sido común así que salgamos un poco de lo cotidiano y veamos algo más al estilo Ruby, lo que te mostraré a continuación se trata del método %w y nos ayuda a crear arreglos de cadenas, de una manera más sencilla para nosotros los programadores:

lenguajes = %w{Ruby Python JAVA C PHP}

Sin comillas y sin comas, genial ¿no? Como te mencionaba, el método anterior sólo sirve para crear arreglos de cadenas.

Lo anterior ha sido bastante útil, con ésto concluiremos éste artículo. Sin embargo, en el siguiente veremos operaciones con arreglos que harán lo aprendido aquí muchísimo más interesante.