Latest web development tutorials

Ruby-Hash (Hash)

Hash (Hash) ist ähnlich dem "Schlüssel" => "Wert" einer solchen Sammlung von Schlüssel-Wert-Paare. Ähnlich einer Hash-Array, aber es ist auf die Verwendung von Indexzahlen beschränkt.

Hash-Index (oder "Schlüssel") kann fast jedes Objekt sein.

Hash-Array zwar ähnlich, aber es ist eine sehr wichtige Unterscheidung: Hash-Elemente in keiner bestimmten Reihenfolge sind. Wenn die Reihenfolge wichtig ist, dann sollten Sie das Array.

Erstellen eines Hash

Wie eine Anordnung, um eine Vielzahl von verschiedenen Möglichkeiten, um einen Hash erstellen. Sie können einen leeren Hash durchneueKlasse Methode zu erstellen:

months = Hash.new

Sie können auch dieneuenHash verwenden wird mit Standardwerten erstellt, ohne Standard - Hash - Wert istgleich Null:

months = Hash.new( "month" )

或

months = Hash.new "month"

Wenn Sie einen Hash mit Standardwerten in jedem Schlüssel zugreifen, wenn der Schlüssel oder Wert nicht vorhanden ist, kehrt in den Zugriffs Hash-Wert default:

#!/usr/bin/ruby

months = Hash.new( "month" )

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

Führen Sie das obige Beispiel Ausgabe lautet:

month
month
#!/usr/bin/ruby

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

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

Führen Sie das obige Beispiel Ausgabe lautet:

100
200

Sie können eine beliebige Ruby-Objekt als Schlüssel oder Wert zu verwenden, oder das Array verwenden können, wie das Beispiel zeigt:

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

Hash integrierte Methode

Wenn Sie die Hash-Methode aufrufen müssen, benötigen Sie einen Hash-Objekt instanziiert. Hier ist ein Weg, um einen Hash-Objekt-Instanz zu erstellen:

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

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

Hash.new { |hash, key| block }

Dies wird wieder ein bestimmtes Objekt mit neuen Hash gefüllt. Nun kann mit Objekten erstellt haben, können wir jede der verfügbaren Methoden aufrufen. Zum Beispiel:

#!/usr/bin/ruby

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

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

keys = months.keys

puts "#{keys}"

Führen Sie das obige Beispiel Ausgabe lautet:

["1", "2"]

Im Folgenden sind gemeinsame Hash - Verfahren (einHash- Hash - Objekt vorausgesetzt):

Nein. Method & Beschreibung
1 Hash == other_hash
Überprüfen Sie, ob die beiden den gleichen Hash-Schlüsselwert für die Anzahl der Schlüssel-Wert-Paare haben, sind aufeinander abgestimmt, um zu bestimmen, ob die beiden Hashes gleich sind.
2 Hash. [key]
Verwenden Sie die wichtigsten Referenzwerte aus dem Hash. Wenn der Schlüssel nicht gefunden wird, dann wieder auf die Standardwerte.
3 Hash. [key] = Wert
DerWert, den Wert des mit dem angegebenen Schlüssel zugeordnetSchlüsselgegeben.
4 hash.clear
Entfernen Sie alle Schlüssel aus dem Hash.
5 hash.default (key = nil)
Gibt den Standardwert vonHash,wenn nicht standardmäßig = nil zurückgibt. (Wenn der Schlüssel nicht in derHashnichtexistiert,dann [] gibt einen Standardwert.)
6 hash.default = obj
Legen Sie die Standardwerte für denHash.
7 hash.default_proc
Wenn derHashdurch den Block erstellt, kehrte der Block.
8 hash.delete (key) [oder]
array.delete (key) {| Schlüssel | block}
Entfernen Sie aus demHash- Schlüssel vonSchlüsselpaar.Wenn der Block und keinen passenden Schlüssel-Wert-Paare, dann werden die Ergebnisse des Blocks zurück gefunden hat. Vergleichen Sie es mitdelete_if.
9 hash.delete_if {| key, value | Block }
Esgiltfür jeden Block des Blocks, den Schlüssel ausdem Hash löschen.
10 hash.each {| key, value | Block }
Traverse demHash,genannt einmal für jedenTastenblock,übergeben Schlüssel-Wert als ein Array mit zwei Elementen.
11 hash.each_key {| Schlüssel | block}
Traverse demHash,genannt einmal für jedenTastenblock,übergebenSchlüsselals Parameter.
12 hash.each_key {| key_value_array | block}
Traverse demHash,genannt einmal für jedenTastenblock,übergebenSchlüsselundWertals Argumente.
13 hash.each_value {| Wert | block}
Traverse demHash,genannt einmal für jedenTastenblock,übergeben alsParameterwert.
14 hash.empty?
Prüfen Sie, ob der Hash leer (enthält nicht die Schlüssel-Wert - Paare), und gibtwahroderfalsch.
15 hash.fetch (Taste [, default]) [oder]
hash.fetch (key) {| Schlüssel | block}
Der Rückgabewert aus demHashüber einen bestimmtenSchlüssel.Wenn Sie denSchlüsselnichtfinden,und keine zusätzlichen Parameter liefern, werfenIndexerrorAusnahme, und wennStandard gegeben,default zurück, wenn der optionale Block, Block Ergebnis zurückgegeben wird.
16 hash.has_key? (key) [oder] hash.include? (key) [oder]
hash.key? (key) [oder] hash.member? (key)
Überprüfen Sie, ob einSchlüsselin dem Hash existiert,wahroderfalsch zurückgibt.
17 hash.has_value? (Wert)
Überprüfen Sie, ob der Hash den angegebenenWert enthält.
18 hash.index (Wert)
Returns für einen bestimmtenWertder Raute -Taste,wenn keine Übereinstimmung gefunden wird , gibtnil zurück.
19 hash.indexes (Schlüssel)
Es gibt ein neues Array von dem Wert eines gegebenen Schlüsselkomponenten. Kann nicht den Schlüssel finden Sie den Standardwert einzufügen. Diese Methode ist veraltet, verwenden Sie bitte das Auswahl.
20 hash.indices (Schlüssel)
Es gibt ein neues Array von dem Wert eines gegebenen Schlüsselkomponenten. Kann nicht den Schlüssel finden Sie den Standardwert einzufügen. Diese Methode ist veraltet, verwenden Sie bitte das Auswahl.
21 hash.inspect
Zurück Druckversion String-Hash.
22 hash.invert
Erstellen Sie einen neuenHash-Hash- Inversion vonSchlüsselnundWerten.Mit anderen Worten, die neueHashwird Hash - Wert der Schlüssel, wird der Wert Schlüssel werden.
23 hash.keys
Erstellen Sie ein neues Array mit derRaute- Taste. / Td>
24 hash.length
Es gibt einen Integer -Hash- Größe oder Länge.
25 hash.merge (other_hash) [oder]
hash.merge (other_hash) {| Schlüssel, altwert, newval | block}
Gibt einen neuen Hash -Hashenthält Inhalte undother_hashumschreibt Schlüsselhash mitother_hashmit einem doppelten Schlüsselpaar.
26 hash.merge! (other_hash) [oder]
hash.merge (other_hash) {| Schlüssel , altwert, newval | block}
Und fusionieren die gleiche, aber tatsächlich Hash geändert hat.
27 hash.rehash
Wiederherstellung desHashauf der Basis des aktuellen Wertes jederTaste.Wenn Sie den Wert geändert hat einfügen, wird der Prozess neu indiziert werdenHash.
28 hash.reject {| key, value | Block }
Wiewahrist jederTastenblockeinen neuenHashzuerstellen.
29 hash.reject {| key, value | block}
Undlehnendie gleiche, aber tatsächlich Hash geändert hat.
30 hash.replace (other_hash)
Ersetzen Sie den Inhalt desHashdes Inhaltsother_hash.
31 hash.select {| key, value | Block }
Gibt ein neues Array, gibt derBlockwahrHash- Schlüsselwerte in den Paaren.
32 hash.shift
Entfernen Sie aus demHashin einem Schlüsselpaar und sendet den Schlüsselwert als ein Array aus zwei Elementen zurückgegeben.
33 hash.size
Es gibt einen Integer -HashderGrößeoder Länge.
34 hash.sort
DerHashwird auf einen Schlüsselwert Array mit zweidimensionales Array umgewandelt und dann sortiert.
35 hash.store (Schlüssel, Wert)
Hashin einem Schlüssel-Wert - Paar gespeichert.
36 hash.to_a
Erstellen Sie eine zweidimensionale Anordnung aus dem Hash. Jeder Schlüssel-Wert-Paar in ein Array, alle diese Arrays werden in einem Array gespeichert.
37 hash.to_hash
ReturnsHash (Selbst-).
38 hash.to_s
DerHashwird in ein Array umgewandelt, dann wird das Array in einen String umgewandelt wird.
39 hash.update (other_hash) [oder]
hash.update (other_hash) {| Schlüssel, altwert, newval | block}
Gibt einen neuen Hash -Hashenthält Inhalte undother_hashumschreibtSchlüsselhashmitother_hashmit einem doppelten Schlüsselpaar.
40 hash.value? (Wert)
Überprüfen Sie, ob derHashden angegebenenWert enthält.
41 hash.values
Es gibt ein neues Array mit allen Werten desHash enthält.
42 hash.values_at (obj, ...)
Es gibt ein neues Array denHash- Wert , die mit einem gegebenen Schlüssel enthalten.