Latest web development tutorials

Rubino hash (hash)

Hash (Hash) è simile alla "chiave" => "valore" di una tale raccolta di coppie chiave-valore. Simile a un array hash, ma non è limitata all'uso di numeri indice.

indice di hash (o "chiave") può essere quasi qualsiasi oggetto.

array di hash Anche se simili, ma non vi è una distinzione molto importante: elementi di hash sono in nessun ordine particolare. Se l'ordine è importante, allora si dovrebbe utilizzare la matrice.

Creazione di un hash

Come un array, una varietà di modi diversi per creare un hash. È possibile creare un hash vuoto attraversonuovometodo di classe:

months = Hash.new

È inoltre possibile utilizzare ilnuovohash viene creato con i valori di default, senza valore di default di hash èpariazero:

months = Hash.new( "month" )

或

months = Hash.new "month"

Quando si accede a un hash con i valori di default in un qualsiasi tasto, se la chiave o il valore non esiste, restituisce il valore hash di accesso predefinito:

#!/usr/bin/ruby

months = Hash.new( "month" )

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

Eseguire l'uscita precedente esempio è il seguente:

month
month
#!/usr/bin/ruby

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

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

Eseguire l'uscita precedente esempio è il seguente:

100
200

È possibile utilizzare qualsiasi oggetto di Ruby come una chiave o un valore, o si può utilizzare la matrice, come l'esempio mostrato:

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

Hash metodo incorporato

Se è necessario chiamare il metodo Hash, è necessario creare un'istanza di un oggetto Hash. Ecco un modo per creare un'istanza oggetto Hash:

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

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

Hash.new { |hash, key| block }

Ciò restituirà un dato oggetto riempito di nuovo hash. Ora, utilizzando gli oggetti creati, possiamo chiamare uno qualsiasi dei metodi disponibili. Ad esempio:

#!/usr/bin/ruby

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

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

keys = months.keys

puts "#{keys}"

Eseguire l'uscita precedente esempio è il seguente:

["1", "2"]

Di seguito sono il metodo di hash comune (ipotizzando un oggetto Hashhash):

No. Metodo & descrizione
1 hash == other_hash
Controllare se i due hanno lo stesso valore di chiave hash per il numero di coppie chiave-valore sono abbinati tra loro per determinare se i due hash sono uguali.
2 hash. [tasto]
Utilizzare i valori di riferimento chiave del hash. Se la chiave non si trova, per poi tornare ai valori di default.
3 hash. [tasto] = valore
Ilvaloreindicato il valore dellachiaveassociata alla chiave data.
4 hash.clear
Rimuovere tutte le chiavi dalla hash.
5 hash.default (key = nil)
Restituisce il valore di default dihash,se non impostata di default =, torna nullo. (Se la chiave non esiste nelhash,quindi [] restituisce un valore predefinito.)
6 hash.default = obj
Impostare i valori predefiniti perl'hash.
7 hash.default_proc
Sel'hashcreato dal blocco, il blocco è tornato.
8 hash.delete (chiave) [o]
array.delete (chiave) {| chiave | block}
Togliere dal tastocancellettocon coppia dichiavi.Se il blocco e non è riuscito a corrispondenti coppie chiave-valore, il risultato del blocco viene restituito. Confronto condelete_if.
9 hash.delete_if {| chiave, valore | block }
E'veroper ogni blocco del blocco, eliminarelachiave dalcancelletto.
10 hash.each {| chiave, valore | block }
Traversel'hash,chiamato una volta per ogni bloccochiave,passare valore-chiave come un array di due elementi.
11 hash.each_key {| chiave | block}
Traversel'hash,chiamato una volta per ogni bloccochiave,passarechiavecome parametro.
12 hash.each_key {| key_value_array | block}
Traversel'hash,chiamato una volta per ogni bloccochiave,passarechiavee ilvalorecome argomenti.
13 hash.each_value {| Valore | block}
Traversel'hash chiamatouna volta per ogni bloccochiave,passato come unvalore di parametro.
14 hash.empty?
Controllare se l'hash è vuota (non contiene le coppie chiave-valore), e restituisceveroofalso.
15 hash.fetch (tasto [, default]) [o]
hash.fetch (chiave) {| chiave | block}
Il valore restituito dalhashattraverso una determinatachiave.Se non si trova lachiave,e non ha fornito ulteriori parametri, lanciare un'eccezioneIndexError,se in caso didefault,ritornadi default,se il blocco opzionale, viene restituito risultato del blocco.
16 hash.has_key? (chiave) [o] hash.include? (chiave) [o]
hash.key? (chiave) [o] hash.member? (chiave)
Controllare se ilparametro chiaveesiste nella hash, restituiscetrueofalse.
17 hash.has_value? (valore)
Controllare se l'hash contiene ilvalore dato.
18 hash.index (valore)
I ritorni per un datovaloredi iltasto cancelletto,i ritorni se viene trovata alcuna corrispondenzazero.
19 hash.indexes (tasti)
Esso restituisce un nuovo array dal valore di un dato componenti chiave. Non riesci a trovare la chiave per inserire il valore di default. Questo metodo è stato deprecato, si prega di utilizzare il select.
20 hash.indices (tasti)
Esso restituisce un nuovo array dal valore di un dato componenti chiave. Non riesci a trovare la chiave per inserire il valore di default. Questo metodo è stato deprecato, si prega di utilizzare il select.
21 hash.inspect
Indietro Stampa versione stringa di hash.
22 hash.invert
Crea una nuovahash,hash di inversione dichiavievalori.In altre parole, il nuovohash,valore hash diventa la chiave, il valore diventerà chiave.
23 hash.keys
Creare un nuovo array con il tastocancelletto./ Td>
24 hash.length
Esso restituisce una dimensionehashintero o la lunghezza.
25 hash.merge (other_hash) [o]
hash.merge (other_hash) {| chiave, oldval, newval | block}
Restituisce un nuovo hash,hashcontiene contenuti eother_hashriscrive tasto cancelletto conother_hashcon una coppia di chiavi duplicate.
26 hash.merge! (other_hash) [o]
hash.merge (other_hash)! {| chiave , oldval, newval | block}
E si fondono lo stesso, ma in realtà hash è cambiato.
27 hash.rehash
Ristabilirel'hashin base al valore corrente di ciascuntasto.Se si inserisce il valore è cambiato, il processo saràhash re-indicizzati.
28 hash.reject {| chiave, valore | block }
Come èveroper ognibloccochiave per creare un nuovohash.
29 hash.reject! {| chiave, valore | block}
Erifiutarela stessa, ma in realtà hash è cambiato.
30 hash.replace (other_hash)
Sostituire il contenuto delhashdelother_hash contenuti.
31 hash.select {| chiave, valore | block }
Restituisce un nuovo array, ilbloccorestituisce valoriverichiavehashnelle coppie.
32 hash.shift
Togliere dalhashin una coppia di chiavi e invia il valore della chiave restituita come un array di due elementi.
33 hash.size
Esso restituisce unhashintero didimensionio lunghezza.
34 hash.sort
L'hashviene convertita in una matrice bidimensionale che contiene serie di valori-chiave e quindi ordinato.
35 hash.store (key, value)
Hashmemorizzato in una coppia chiave-valore.
36 hash.to_a
Creazione di un array bidimensionale dalla hash. Ogni coppia chiave-valore in un array, tutti questi array sono memorizzati in un array.
37 hash.to_hash
I ritornidi hash (auto).
38 hash.to_s
L'hashviene convertito in un array, l'array viene convertito in una stringa.
39 hash.update (other_hash) [o]
hash.update (other_hash) {| chiave, oldval, newval | block}
Restituisce un nuovo hash,hashcontiene contenuti eother_hashriscrive tastocancellettoconother_hashcon una coppia di chiavi duplicate.
40 hash.value? (valore)
Controllare sel'hashcontiene ilvalore dato.
41 hash.values
Esso restituisce un nuovo array contenente tutti i valori delhash.
42 hash.values_at (obj, ...)
Esso restituisce un nuovo array contenente il valorehashassociata ad una determinata chiave.