Latest web development tutorials

Ruby hachage (Hash)

Hash (Hash) est similaire à la "clé" => "valeur" d'une telle collection de paires clé-valeur. Semblable à un tableau de hachage, mais elle ne se limite pas à l'utilisation des numéros d'index.

index Hash (ou «clé») peut être presque tout objet.

tableau Hash Bien que semblable, mais il y a une distinction très importante: éléments de hachage sont dans aucun ordre particulier. Si l'ordre est important, alors vous devez utiliser le tableau.

Création d'une table de hachage

Comme un tableau, une variété de façons différentes de créer une table de hachage. Vous pouvez créer un hachage vide grâce à unenouvelleméthode de classe:

months = Hash.new

Vous pouvez également utiliser lenouveauhachage est créé avec des valeurs par défaut, sans valeur de hachage par défaut estnul:

months = Hash.new( "month" )

或

months = Hash.new "month"

Lorsque vous accédez à une table de hachage avec des valeurs par défaut dans une touche, si la clé ou la valeur n'existe pas, retourne à la valeur de hachage d'accès par défaut:

#!/usr/bin/ruby

months = Hash.new( "month" )

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

Exécutez l'exemple ci-dessus est sortie:

month
month
#!/usr/bin/ruby

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

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

Exécutez l'exemple ci-dessus est sortie:

100
200

Vous pouvez utiliser un objet Ruby comme une clé ou une valeur, ou pouvez utiliser le tableau, comme l'exemple représenté:

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

Hash méthode intégrée

Si vous avez besoin d'appeler la méthode de hachage, vous devez instancier un objet Hash. Voici un moyen de créer une instance d'objet Hash:

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

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

Hash.new { |hash, key| block }

Ceci renverra un objet donné rempli de nouveau hachage. Maintenant, en utilisant des objets créés, nous pouvons appeler l'une des méthodes disponibles. Par exemple:

#!/usr/bin/ruby

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

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

keys = months.keys

puts "#{keys}"

Exécutez l'exemple ci-dessus est sortie:

["1", "2"]

Ci - dessous sont la méthode de hachage commune ( en supposant un objet de hachagede hachage):

Non. Méthode & Description
1 hash == other_hash
Vérifiez si les deux ont la même valeur de clé de hachage pour le nombre de paires clé-valeur sont mis en correspondance avec l'autre pour déterminer si les deux hachages sont égaux.
2 hachage. [key]
Utilisez les valeurs de référence clés du hachage. Si la clé ne se trouve pas, puis revenir aux valeurs par défaut.
3 hachage. [key] = valeur
Lavaleurdonnée de la valeur de lacléassociée à la clé donnée.
4 hash.clear
Retirer toutes les clés du hachage.
5 hash.default (key = nil)
Renvoie la valeur par défaut dehachage,sinon défini par défaut =, renvoie nil. (Si la clé n'existe pas dans lehachage,puis [] retourne une valeur par défaut.)
6 hash.default = obj
Définissez les valeurs par défaut pour lehachage.
7 hash.default_proc
Si lehachagecréé par le bloc, le bloc retourné.
8 hash.delete (clé) [ou]
array.delete (key) {| clé | block}
Retirer de la cléde hachagepar paire declés.Si le bloc et n'a pas trouvé un correspondant de paires clé-valeur, les résultats du bloc est renvoyé. Comparez - le avecdelete_if.
9 hash.delete_if {| clé, valeur | bloc }
Il estvraipour chaque bloc du bloc, supprimer la clé dehachage.
10 hash.each {| clé, valeur | bloc }
Traverse lehachage,appelé une fois pour chaque bloc declé,passez la valeur-clé comme un tableau à deux éléments.
11 hash.each_key {| clé | block}
Traverse lehachage,appelé une fois pour chaque bloc declé,passer lacléen tant que paramètre.
12 hash.each_key {| key_value_array | block}
Traverse lehachage,appelé une fois pour chaque bloc declé,passezcléet lavaleurcomme arguments.
13 hash.each_value {| valeur | block}
Traverse lehachage,appelé une fois pour chaque bloc declé,passée comme unevaleurdeparamètre.
14 hash.empty?
Vérifiez si le hachage est vide (ne contient pas les paires clé-valeur), et renvoietrueoufalse.
15 hash.fetch (touche [, par défaut])[ou]
hash.fetch (key) {| clé | block}
La valeur de retour de latabledehachagepar uneclé donnée.Si vous ne trouvez pas laclé,et n'a pas fourni d' autres paramètres, jeterIndexErrorexception, si elle est donnée pardéfaut,retourne pardéfaut,si le bloc optionnel, résultat de bloc est renvoyé.
16 hash.has_key? (key) [ou] hash.include? (key) [ou]
hash.key? (key) [ou] hash.member? (key)
Vérifiez si laclédonnée existe dans le hachage, renvoietrueoufalse.
17 hash.has_value? (valeur)
Vérifier si le hachage contient lavaleur donnée.
18 hash.index (valeur)
Retours pour unevaleurdonnée de laclédehachage,si aucune correspondance se trouve retournenil.
19 hash.indexes (touches)
Il renvoie un nouveau tableau de la valeur d'un des éléments clés donnés. Vous ne pouvez pas trouver la clé pour insérer la valeur par défaut. Cette méthode a été dépréciée, s'il vous plaît utiliser la sélection.
20 hash.indices (touches)
Il renvoie un nouveau tableau de la valeur d'un des éléments clés donnés. Vous ne pouvez pas trouver la clé pour insérer la valeur par défaut. Cette méthode a été dépréciée, s'il vous plaît utiliser la sélection.
21 hash.inspect
Retour Imprimer la version string hash.
22 hash.invert
Créer un nouveauhachage,hachage inversion descléset desvaleurs.En d' autres termes, le nouveauhachage,la valeur de hachage devient la clé, la valeur deviendra clé.
23 hash.keys
Créer un nouveau tableau avec la cléde hachage./ Td>
24 hash.length
Il renvoie une taillede hachageentier ou longueur.
25 hash.merge (other_hash) [ou]
hash.merge (other_hash) {| clé, oldval, newval | block}
Renvoie un nouveau hachage,hachagecontient le contenu etother_hashréécrit hachage clé avecother_hashavec une paire clé en double.
26 hash.merge! (other_hash) [ou]
hash.merge (other_hash) {| clé , oldval, newval | block}
Et fusionner le même, mais en réalité hachage a changé.
27 hash.rehash
Rétablir lavaleurdehachagesur la base de la valeur actuelle de chaquetouche.Si vous insérez la valeur a changé, le processus serahachage ré-indexé.
28 hash.reject {| clé, valeur | bloc }
Comme estvraide chaqueblocde clé pour créer un nouveauhachage.
29 hash.reject {| key, value | block}
Etrejeterla même chose, mais en fait hachage a changé.
30 hash.replace (other_hash)
Remplacez le contenu duhachagedu contenuother_hash.
31 hash.select {| clé, valeur | bloc }
Renvoie un nouveau tableau, leblocrenvoie des valeurs de clésde hachagevrai dans les paires.
32 hash.shift
Retirer de latabledehachagedans une paire de clés et envoie la valeur clé renvoyée comme un tableau à deux éléments.
33 hash.size
Elle retourne unhachageentier de latailleou la longueur.
34 hash.sort
Lehachageest converti en un tableau à deux dimensions contenant tableau de valeur-clé, puis triée.
35 hash.store (clé, valeur)
Hashstocké dans une paire clé-valeur.
36 hash.to_a
Créer un tableau à deux dimensions à partir de la table de hachage. Chaque paire dans un tableau de valeurs-clés, tous ces tableaux sont stockés dans un tableau.
37 hash.to_hash
Retourshash (self).
38 hash.to_s
Lehachageest converti en un tableau, le tableau est converti en une chaîne.
39 hash.update (other_hash) [ou]
hash.update (other_hash) {| clé, oldval, newval | block}
Renvoie un nouveau hachage,hachagecontient le contenu etother_hashréécrithachageclé avecother_hashavec une paire clé en double.
40 hash.value? (valeur)
Vérifiez si lehachagecontient lavaleur donnée.
41 hash.values
Il renvoie un nouveau tableau contenant toutes les valeurs de latabledehachage.
42 hash.values_at (obj, ...)
Il renvoie un nouveau tableau contenant la valeurde hachageassociée à une clé donnée.