Tag Archive for signa

Hashes en Ruby.

Un diccionario es muy parecido a un arreglo, con la diferencia más clara es que tú defines en qué posición se guarda el arreglo. Una aproximación clara de lo que es un hash se da con los diccionarios (por eso puedes llamarlo de las 2 maneras), cuando buscas algo en un diccionario no lo haces a través de números, ni el diccionario está ordenado de manera aleatoria, existe una relación entre el contenido y la posición en la que está guardado.

Si lo anterior no te queda aún muy claro veamos cómo definir un hash:

lenguajes = Hash.new
lenguajes["ruby"] = "Creado por Matz"
lenguajes["python"] = "No puntos y coma ni llaves"
lenguajes["java"] =" Lenguaje compilado"

Considero que el ejemplo anterior es bastante explícito, es una de las formas de declarar un hash, como instancia de la clase Hash. Vemos cómo asignamos una cadena a un index, cada index es el nombre de un lenguaje y el valor es una característica del lenguaje, si quisiéramos saber algo sobre JAVA, haríamos:

puts lenguajes["java"]

Mucho más claro y sencillo, además de más rápido que un arreglo, ahora bien, veamos una forma más de declarar un Hash:

lenguajes = {'ruby' => 'Creado por Matz', 'python' => 'Lenguaje interpretado'}

Como puedes ver el index, va seguido del operador => que signa el valor. Al ser igual al ejemplo anterior considero que no hay mucha dificultad para relacionar ambos ejemplos.

Ahora bien, eso es lo que por ahora necesitas saber sobre los Hashes, sin embargo hay algo muy interesante en Ruby que se conoce como símbolos, los símbolos son los objetos más sencillos, sólo tienen un nombre y un id, éste id los identifica, no pueden haber dos símbolos del mismo nombre, ésto es muy interesante porque tú por ejemplo puedes tener dos cadenas así:

"Hola mundo"
"Hola mundo"

Pero no dos símbolos así:

:hola_mundo
:hola_mundo

En el primer ejemplo, ambas cadenas son distintas, en el segundo amos símbolos son el mismo. Esto es útil con los hashes porque aumenta la velocidad de los mismos, puesto que Ruby no tiene que estarlos declarando constantemente, con una vez basta, veamos cómo usar símbolos con hashes:

lenguajes = Hash.new
lenguajes[:ruby] = "Creado por Matz"
lenguajes[:python] = "No puntos y coma ni llaves"
lenguajes[:java] =" Lenguaje compilado"

Muy sencillo, nota como cada símbolo se identifica porque su nombre inicia con :.

Con esto terminamos lo que corresponde a hashes, seguramente los usaremos más adelante, así que haz varias pruebas con ellos, de ahora en adelante nos adentraremos en la programación orientada a objetos con Ruby.