Guía Ruby: La Clase Array
En este capítulo de la guía hispana de Ruby vamos a sumergirnos en una de las clases más usadas del lenguaje - Array. La documentacion oficial de esta clase está disponible en línea y lo primero que aprenderemos es como crear arrays y algunos operadores básicos. Si quieren sacarle el mayor provecho, disparen irb en su consola y sigan los ejemplos mientras leen. También pueden usar esta versión en la web de irb.
Si necesitas instalar Ruby te recomiendo veas la Guía Hispana de Ruby en donde te muestro paso a paso cómo hacerlo. Ahora, creemos nuestro primer array.
Array.new
Crea un nuevo array. Por ejemplo:
@nombres = Array.new
Esto hace que @nombres se convierta en una array. Hay que notar que este array esta vació.
Método: []
Este método retorna un nuevo array con el contenido que le pasemos. Por ejemplo:
@nombres = ["ivan", "luis", "pedro"]
Esto asigna a @nombres un array con los 3 elementos: ivan, luis y pedro. Noten como no tuvimos que llamar a la clase Array[“ivan”, “luis”, “pedro”] ya que Ruby deduce por su naturaleza dinámica que esto es un array. EL método [] es muy usado en la creación de arrays.
Método: +
Con este método sumamos arrays. Es decir, le agregamos el contenido de uno al final del otro. Por ejemplo:
@nombres = ["ivan", "luis", "pedro"] @nombres_ingleses = [ "Ralph, Joe, Bob" ] @nombres + @nombres_ingleses ["ivan", "luis", "pedro", "Ralph, Joe, Bob"]
Método: –
De la misma manera podemos restar arrays.
@nombres = ["ivan", "luis, "pedro"] @menos_nombres = ["ivan", "luis"] @nombres - @menos_nombres ["pedro"]
Método: *
Muy parecido podemos multiplicar un array por un número. Esto lo va a copiar tantas veces sea el valor de la multiplicación.
[1, 2, 3] * 3 [1, 2, 3, 1, 2, 3, 1, 2, 3]
Método: <<
Al ya tener un array podemos agregarle nuevos objetos con el método <<. Por ejemplo:
@nombres = ["ivan"] @nombres << "pedro" ["ivan", "pedro"]
Podemos usar este metodo varias veces como por ejemplo:
@nombres << "Raul" << "Luis" << "Cesar" ["ivan", "pedro", "Raul", "Luis", "Cesar"]
Método: &
A este método lo llamamos intersección por que retorna los elementos comunes de dos arrays sin duplicados. Por ejemplo:
@clientes = ["Raul", "Pedro", "Ivan", "Raul"] @familia = ["Raul", "Raul"] @clientes & @familia ["Raul"]
´
Método: <=>
A este método lo llamamo compración. Retorna -1, 0, +1 si el array es menor que, igual que o mayor que otro array respectivamente. Por ejemplo:
["Ivan", "Pedro"] <=> ["Pedro"] -1 ["Pedro", "Ivan"] <=> ["Ivan", "Pedro"] 1 ["Pedro", "Ivan"] <=> ["Pedro", "Ivan"] 0
Notemos como retorna (-1) si los arrays son diferentes. Retorna 1 si los array son iguales pero los objetos no están en el mismo orden y retorna 0 si el array es exactamente igual.
Método: ==
Igualdad. Con esto probamos que dos arrays son igual.
["pedro", "ivan"] == [1,2,3] false ["pedro", "ivan" ] == ["pedro", "ivan"] true
La verdad que el uso de Arrays siempre me vuelve algo loco, pero al ver este artículo no he podido evitar remitirme a http://www.maestrosdelweb.com/editorial/ruby/ y la verdad que tiene una sintaxis supersimple, lo que me hace ir directo a la web oficial http://www.ruby-lang.org y probarlo en mi linux sin ningún problema para instalarlo, solo me queda probarlo, espero que esté chulo porque todo apunta a que sí.
Con esta explicación de los Arrays en Ruby …como ya lo dijo Juande , se nota una sintaxis simple y un funcionamiento natural …muy interesante el articulo.
Así da ganas de ponerse a revisar mas sobre el lenguaje (:! …
tengo poco tiempo en ruby y algo que no entiendo es por que no incorpora arreglos multiples(mas aun considerando que si tiene matrices), queria hacer un pequeño jueguito que hize en otro lenguaje hace bastante tiempo, el de guerra naval de hundir barquitos, la maquina automaticamente elegia donde colocar sus barquitos y la verdad se me complico mas de lo que esperaba al no poder utilizar arreglos bidimensionales, existe alguna gema o algo que permita esto?…gracias