Latest web development tutorials

hash de Rubí (Hash)

Hash (Hash) es similar a la "clave" => "valor" de una colección de pares de valores clave tales. Similar a un array de hash, pero no se limita a la utilización de números de índice.

índice hash (o "clave") pueden ser casi cualquier objeto.

matriz de hash Aunque es similar, pero hay una distinción muy importante: los elementos hash están en ningún orden en particular. Si el orden es importante, entonces debe usar la matriz.

La creación de un hash

Al igual que una matriz, una variedad de maneras diferentes para crear un hash. Puede crear un hash vacíoatravés delnuevométodo de clase:

months = Hash.new

También puede utilizar elnuevohash se crea con los valores por defecto, sin valor hash predeterminado esnulo:

months = Hash.new( "month" )

或

months = Hash.new "month"

Cuando acceda a un hash con los valores por defecto en cualquier clave, si la clave o el valor no existe, devuelve el valor hash de acceso por defecto:

#!/usr/bin/ruby

months = Hash.new( "month" )

puts "#{months[0]}"
puts "#{months[72]}"

Ejecutar la salida anterior ejemplo es:

month
month
#!/usr/bin/ruby

H = Hash["a" => 100, "b" => 200]

puts "#{H['a']}"
puts "#{H['b']}"

Ejecutar la salida anterior ejemplo es:

100
200

Se puede utilizar cualquier objeto de Ruby como una clave o valor, o puede utilizar la matriz, como el ejemplo que se muestra:

[1,"jan"] => "January"

Hash método integrado

Si necesita llamar al método hash, es necesario crear una instancia de un objeto Hash. Aquí es una forma de crear una instancia de objeto Hash:

Hash[[key =>|, value]* ] or

Hash.new [or] Hash.new(obj) [or]

Hash.new { |hash, key| block }

Esto devolverá un objeto dado llena de nuevo hash. Ahora, utilizando objetos creados, podemos llamar a cualquiera de los métodos disponibles. Por ejemplo:

#!/usr/bin/ruby

$, = ", "
months = Hash.new( "month" )

months = {"1" => "January", "2" => "February"}

keys = months.keys

puts "#{keys}"

Ejecutar la salida anterior ejemplo es:

["1", "2"]

Los siguientes son método asociativo común (suponiendo un objeto hashhash):

No. Método y Descripción
1 picadillo == other_hash
Comprobar si los dos tienen el mismo valor de clave hash para el número de pares de valores clave se corresponden entre sí para determinar si los dos valores hash son iguales.
2 hash. [clave]
Utilice los valores de referencia clave a partir del hash. Si no se encuentra la clave, a continuación, volver a los valores por defecto.
3 hash. [clave] = Valor
Elvalordado el valor de laclaveasociada con la clave dada.
4 hash.clear
Retirar todas las claves a partir del hash.
5 hash.default (clave = nil)
Devuelve el valor por defecto dehachís,si no se establece de forma predeterminada =, devuelve nil. (Si la clave no existe en elhash,a continuación, [] devuelve un valor predeterminado.)
6 hash.default = obj
Establecer los valores predeterminados para elhash.
7 hash.default_proc
Si elhashcreado por el bloque, el bloque regresó.
8 hash.delete (teclado numérico) [o]
array.delete (clave) {| llave | block}
Sacar de la tecla dealmohadillaporunpar declaves.Si el bloque y no se encontró una correspondencia pares de valores clave, los resultados de la cuadra se devuelve. Compararlo condelete_if.
9 hash.delete_if {| clave, valor | bloque }
Esciertopara cada bloque del bloque, elimine la claveapartirdel hash.
10 hash.each {| clave, valor | bloque }
Traverse elhash,se llama una vez para cada bloque declaves,pase clave-valor como un array de dos elementos.
11 hash.each_key {| llave | block}
Traverse elhash,se llama una vez para cada bloque declaves,tecla de pasar como un parámetro.
12 hash.each_key {| key_value_array | block}
Traverse elhash,se llama una vez para cada bloque declaves,paseclaveyelvalor como argumentos.
13 hash.each_value {| valor | block}
Traverse elhash,se llama una vez para cada bloque declaves,se pasa como unvalordeparámetro.
14 hash.empty?
Compruebe si el hash está vacía (no contiene los pares clave-valor), y devuelveverdaderoofalso.
15 hash.fetch (tecla [, default]) [o]
hash.fetch (clave) {| llave | block}
El valor de retornoapartir delhasha través de unaclave dada.Si no encuentra lallave,y no proporcionan parámetros adicionales, lanzarIndexErrorexcepción, siencaso deimpago,vuelvepor defecto,si el bloque opcional, se devuelve resultado del bloque.
16 hash.has_key? (teclado numérico) [o] hash.include? (teclado numérico) [o]
hash.key? (teclado numérico) [o] hash.member? (clave)
Compruebe si existe laclavedada en el hash, devuelveverdaderoofalso.
17 hash.has_value? (valor)
Compruebe si el hash contiene elvalor dado.
18 hash.index (valor)
Las devoluciones para unvalordado de latecladealmohadilla,devoluciones si no se encuentra el número,cero.
19 hash.indexes (teclas)
Devuelve una nueva matriz por el valor de unos componentes claves dadas. No se puede encontrar la llave para insertar el valor predeterminado. Este método ya no se utiliza, por favor utilice la selección.
20 hash.indices (teclas)
Devuelve una nueva matriz por el valor de unos componentes claves dadas. No se puede encontrar la llave para insertar el valor predeterminado. Este método ya no se utiliza, por favor utilice la selección.
21 hash.inspect
Volver Imprimir hash de cadena de versión.
22 hash.invert
Crear una nueva inversión dehachís,hachís declavesyvalores.En otras palabras, la nuevaalmohadilla,valor hash se convierte en la tecla, el valor se convertirá en la clave.
23 hash.keys
Crear una nueva matriz con la tecla dealmohadilla./ Td>
24 hash.length
Devuelve un tamañode hashnúmero entero o longitud.
25 hash.merge (other_hash) [o]
hash.merge (other_hash) {| llave, oldval, valnuevo | block}
Devuelve un nuevo hachís,hachíscontiene reescrituras de contenido yother_hashcon clave hashother_hashcon un par de clave duplicada.
26 hash.merge! (other_hash) [o]
hash.merge (other_hash) {| clave , oldval, valnuevo | block}
Y fusionar el mismo, pero en realidad ha cambiado de hash.
27 hash.rehash
Re-establecer elhashbasado en el valor actual de cadatecla.Si inserta el valor ha cambiado, el proceso seráhash de re-indexada.
28 hash.reject {| clave, valor | bloque }
Comoocurrecon cadabloque declaves para crear un nuevohash.
29 hash.reject {| clave, valor | block}
Yrechazarlo mismo, pero en realidad ha cambiado de hash.
30 hash.replace (other_hash)
Reemplazar el contenido delhashdelother_hash contenido.
31 hash.select {| clave, valor | bloque }
Devuelve una nueva matriz, devuelve elbloquedeverdaderosvalores de clavehashen los pares.
32 hash.shift
Retirar delpicadilloen un par de claves y envía el valor de la clave devuelve como un vector de dos elementos.
33 hash.size
Devuelve unhashentero deltamañoo longitud.
34 hash.sort
Elhashse convierte en una matriz bidimensional que contiene matriz clave-valor y luego ordenadas.
35 hash.store (clave, valor)
Hashalmacenado en un par clave-valor.
36 hash.to_a
Crear una matriz bidimensional a partir del hash. Cada par clave-valor en una matriz, todas estas matrices se almacenan en una matriz.
37 hash.to_hash
Las devolucionesde hash (auto).
38 hash.to_s
Elhashse convierte en una matriz, la matriz se convierte en una cadena.
39 hash.update (other_hash) [o]
hash.update (other_hash) {| llave, oldval, valnuevo | block}
Devuelve un nuevo hachís,hachíscontiene contenido yother_hashreescribe clavehashconother_hashcon un par de clave duplicada.
40 hash.value? (valor)
Compruebe si elhashcontiene elvalor dado.
41 hash.values
Devuelve una nueva matriz que contiene todos los valores delhash.
42 hash.values_at (obj, ...)
Devuelve una nueva matriz que contiene el valorde hashasociada a una clave dada.