Un espacio para los entusiastas del web

3 com comentarios en total.
23 Dic 2009
4,005 Lecturas
Tags: Programación, Desarrollo Web, Ruby on Rails, , , y 2 más.

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

Ir al siguiente capítulo: RDoc para documentación automática

Ivan Acosta-RubioIvan Acosta-Rubio para Maestros del Web.
Agrega tu comentario | Enlace permanente al artículo

Síguenos en: @maestros | Fan page

Comentarios

  1. 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í.

    Responder
  2. Jesus

    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 (:! …

    Responder
  3. angel

    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

    Responder

Deja tu Comentario

Maestros del Web se reserva el derecho de moderación de los comentarios. Evita utilizar palabras soeces, ataques directos, descalificativos, insultos, de lo contrario tu comentario será eliminado.



Acerca de
Maestros del Web nace cuando intentamos traducir Webmaster al Español. Nacimos orientados al diseño y desarrollo web. Hoy somos un espacio de apoyo para los entusiastas que participan en proyectos en la red.
Leer más de Maestros del Web