Matrices no son la única forma de administrar colecciones de variables en Rubí. Otro tipo de colección de variables es el picadillo, también llamado matriz asociativa. Un hash es como una matriz en el sentido de que es una variable que almacena otras variables. Sin embargo, un hash es diferente de una matriz en que las variables almacenadas no se almacenan en ningún orden en particular, y se recuperan con una clave en lugar de por su posición en la colección.
Crear un hash con pares clave / valor
Un hash es útil para almacenar lo que se llama pares clave / valor. Un par clave / valor tiene un identificador para indicar a qué variable del hash desea acceder y una variable para almacenar en esa posición en el hash. Por ejemplo, un maestro puede almacenar las calificaciones de un alumno en un hash. La clave "Bob" accedería a la calificación de Bob en un hash y la variable almacenada en esa ubicación sería la calificación de Bob.
Se puede crear una variable hash de la misma manera que una variable de matriz. El método más simple es crear un objeto hash vacío y llenarlo con pares clave / valor. Tenga en cuenta que se usa el operador de índice, pero se usa el nombre del alumno en lugar de un número.
Recuerde que los hashes no están ordenados, lo que significa que no hay un principio o un final definidos como los que hay en una matriz. Por lo tanto, no se puede agregar a un hash. Los valores simplemente se insertan en el hash utilizando el operador de índice.
#! / usr / bin / env ruby
grados = Hash.nuevo
grados ["Bob"] = 82
grados ["Jim"] = 94
grados ["Billy"] = 58
pone notas ["Jim"]
Hash Literals
Al igual que las matrices, los hash se pueden crear con hash literales Los literales hash utilizan las llaves en lugar de los corchetes y los pares de valores clave se unen mediante =>. Por ejemplo, un hash con un solo par clave / valor de Bob / 84 se vería así: {"Bob" => 84}. Se pueden agregar pares clave / valor adicionales al literal hash separándolos con comas. En el siguiente ejemplo, se crea un hash con las calificaciones de varios estudiantes.
#! / usr / bin / env ruby
grados = {"Bob" => 82,
"Jim" => 94,
"Billy" => 58
}
pone notas ["Jim"]
Acceso a variables en el hash
Puede haber ocasiones en las que deba acceder a cada variable en el hash. Todavía puede recorrer las variables en el hash usando el cada bucle, aunque no funcionará de la misma manera que usar el cada bucle con variables de matriz. Debido a que un hash no está ordenado, el orden en que cada el bucle sobre los pares clave / valor puede no ser el mismo que el orden en que los insertó. En este ejemplo, se realizará un bucle de calificaciones y se imprimirá.
#! / usr / bin / env ruby
grados = {"Bob" => 82,
"Jim" => 94,
"Billy" => 58
}
grados.e cada nombre | grado |
pone "# {nombre}: # {grado}"
final