Arrays
Otra clase útil es Array. Los objetos de tipo Array sirven para guardar una serie de objetos en orden. Y cuando se habla de "objetos", en general, quiere decir que pueden mezclarse en un Array objetos de distintas clases. Se puede crear uno con una instrucción como:a= [12,3,9, 5, "hola", 24]
Los corchetes “[“ y “]” encierran a los elementos del Array, que van separados por comas. Un objeto de tipo Array puede contener también (¡cómo no!) otros arrays. O estar vacío, en cuyo caso se expresaría como “[]”:
Extraer elementos de un Array es muy sencillo. Probemos con “array1[1]”:
La posición del elemento deseado se indica entre corchetes “[“ y “]”. Obsérvese que el primer elemento de un Array tiene el índice “0”. El segundo, “1”. El tercero, “2”. Y así sucesivamente. Si se especifica un índice para el que no hay elemento, se obtendrá “nil” como respuesta:
Recordarás que el primer elemento de array1 era otro Array. Así:
Y puedes extraer datos de un Array y manipularlo sin necesidad de almacenarlo en una variable. Algo que puedes hacer con otras clases también y que permite en ocasiones que los programas queden muy resultones:
Observa que las cadenas de este ejemplo están encerradas entre comillas simples, no dobles como en los casos anteriores. Puedes utilizar unas u otras según te convenga. Y no son las únicas formas de escribir una cadena.
Hashes (que no, no insistas, que no es eso que se fuman algunos)
Hay otra clase parecida a Array en la que los índices no tienen por qué ser números enteros. Se denomina Hash. Para escribir un objeto de la clase Hash se usan las llaves “{“ y “}”. Fíjate bien en la notación:mi_hash = {'abc'=> 11, "def" => 'abc'}
A la variable mi_hash se le asigna un Hash con dos elementos. El primero tiene como índice la cadena ‘abc’ y como valor 11. El índice del segundo es “def” y su valor ‘abc’. Para obtenerlos se usa una notación similar a la de los Arrays:
Recuerda que a Ruby le da igual si pones comillas simples o dobles cuando escribes una cadena.
Symbols
La última clase que veremos por ahora es Symbol. Curiosa clase, porque se usa para crear objetos a los que no queremos asignar ningún valor. Son como etiquetas autodescriptivas. Los “símbolos” comienzan con el carácter de dos puntos “:”, como en:
En este caso, se ha asignado a la variable color el valor “:rojo”
Los objetos de tipo Symbol se manejan de forma más eficiente que las cadenas a la hora de asignaciones y comprobaciones.
Como se indicó anteriormente, cada clase tiene sus métodos, si bien hay algunos que suelen estar definidos casi siempre. Como to_s, que convierte un objeto en su representación como cadena. Así, en el caso anterior se tendría
Observa como entre el objeto al que se aplica y el nombre del método hay un punto “.”. Esto ya lo vimos antes cuando se invocaron los métodos “class” y “methods” al número, Fixnum, 2.
Los Symbols son objetos y, aunque no representen ni cadenas ni números, tampoco son iguales a nil. Se puede comprobar esto evaluando “:rojo.nil?”
nil? es un método que indica si un objeto es igual a nil o no. Te habrás fijado en el interrogante del final “?”. Es una convención que los métodos que retornan un valor de cierto o falso terminen así. Como ocurre también con “is_a?”, que nos dice si un objeto pertenece o no a una determinada clase:
Otra cosa a recordar: cuando se pasan parámetros a un método, si hay más de uno, se separan con comas.
Más adelante veremos algunos ejemplos. Pero ya es suficiente por ahora. Para salir del intérprete irb, escribe “exit”. Y ya sabes lo que hay que hacer después…
No hay comentarios:
Publicar un comentario