Latest web development tutorials

Rubi de hash (hash)

Hash (Hash) é semelhante ao "chave" => "valor" de uma tal coleção de pares chave-valor. Semelhante a uma matriz de mistura, mas não é limitado ao uso de números de índice.

índice hash (ou "chave") pode ser quase qualquer objeto.

array desordenado Apesar de ser semelhante, mas há uma distinção muito importante: Elementos hash em nenhuma ordem particular. Se a ordem é importante, então você deve usar a matriz.

Criando um hash

Como uma matriz, uma variedade de maneiras diferentes para criar um hash. Você pode criar um hash vazio através denovométodo de classe:

months = Hash.new

Você também pode usar onovohash é criado com valores padrão, sem valor de hash padrão énulo:

months = Hash.new( "month" )

或

months = Hash.new "month"

Quando você acessa um hash com valores padrão em qualquer tecla, se a chave ou valor não existir, retorna ao valor de hash padrão de acesso:

#!/usr/bin/ruby

months = Hash.new( "month" )

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

Execute o exemplo acima saída é:

month
month
#!/usr/bin/ruby

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

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

Execute o exemplo acima saída é:

100
200

Você pode usar qualquer objeto Ruby como uma chave ou valor, pode usar a matriz, como o exemplo dado:

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

Hash método incorporado

Se você precisar chamar o método de hash, você precisa instanciar um objeto Hash. Aqui está uma maneira de criar uma instância de Hash objeto:

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

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

Hash.new { |hash, key| block }

Isso irá retornar um determinado objeto preenchido com o novo hash. Agora, usando objetos criados, podemos chamar qualquer um dos métodos disponíveis. Por exemplo:

#!/usr/bin/ruby

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

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

keys = months.keys

puts "#{keys}"

Execute o exemplo acima saída é:

["1", "2"]

A seguir, são o método de hash comum (assumindo um objeto HashHash):

Não. Method & descrição
1 hash de == other_hash
Verifique se os dois têm o mesmo valor de chave de hash para o número de pares de valores-chave são combinados uns com os outros para determinar se os dois hashes são iguais.
2 hash. [key]
Usando uma chave valores de referência a partir do hash. Se a chave não for encontrado, em seguida, retornar para os valores padrão.
3 hash. [key] = valor
Ovalordado o valor dachaveassociada com a chave dada.
4 hash.clear
Remova todas as chaves do hash.
5 hash.default (key = nil)
Retorna o valor padrão dehaxixe,se não for definido por padrão =, retorna nil. (Se a chave não existe nohash,então [] retorna um valor padrão.)
6 hash.default = obj
Definir os valores padrão para ohash.
7 hash.default_proc
Se ohashcriado por o bloco, o bloco devolvido.
8 hash.delete (key) [ou]
array.delete (key) {| chave | block}
Retire do chave dehashpor par dechaves.Se o bloco e não encontrar uma correspondência pares chave-valor, os resultados do bloco é retornado. Compará-lo comdelete_if.
9 hash.delete_if {| chave, valor | bloco }
Éverdadepara cada bloco do bloco, elimine a chavedo hash.
10 hash.each {| chave, valor | bloco }
Traverse ohash,chamado uma vez para cada blocochave,passar de valores-chave como uma matriz de dois elementos.
11 hash.each_key {| chave | block}
Traverse ohash,chamado uma vez para cada bloco dechave,chave-mestra como um parâmetro.
12 hash.each_key {| key_value_array | block}
Traverse ohash,chamado uma vez para cada bloco dechave,chave-mestra evalorcomo argumentos.
13 hash.each_value {| Valor | block}
Traverse ohash,chamado uma vez para cada blocochave,passado como umvalor de parâmetro.
14 hash.empty?
Verifique se o hash está vazio (não contém os pares chave-valor), e retornaverdadeirooufalso.
15 hash.fetch (tecla [, padrão]) [ou]
hash.fetch (key) {| chave | block}
O valor de retorno a partir dohashatravés de uma determinadachave.Se você não encontrar achave,e não fornecer parâmetros adicionais, jogar exceçãoIndexError;se dadopadrão,retornadefault,se o bloco opcional, resultado bloco é retornado.
16 hash.has_key? (key) [ou] hash.include? (key) [ou]
hash.key? (key) [ou] hash.member? (key)
Verifique se existe achavedada no hash, retornaverdadeirooufalso.
17 hash.has_value? (valor)
Verifique se o hash contém ovalor dado.
18 hash.index (valor)
Retornos para um dadovalordachavedehash, osretornos se nenhuma correspondência é encontradanulo.
19 hash.indexes (teclas)
Ele retorna uma nova matriz pelo valor de um determinado componentes-chave. Não é possível encontrar a chave para inserir o valor padrão. Este método foi preterido, por favor use o select.
20 hash.indices (teclas)
Ele retorna uma nova matriz pelo valor de um determinado componentes-chave. Não é possível encontrar a chave para inserir o valor padrão. Este método foi preterido, por favor use o select.
21 hash.inspect
Voltar Imprimir hash de seqüência de versão.
22 hash.invert
Criar uma nova inversãode hash,hashchavesevalores.Em outras palavras, o novohash,valor de hash torna-se a chave, o valor será chave.
23 hash.keys
Criar uma nova matriz com a chave dehash./ Td>
24 hash.length
Ele retorna um tamanhode hashinteiro ou comprimento.
25 hash.merge (other_hash) [ou]
hash.merge (other_hash) {| chave, OLDVAL, newval | block}
Retorna um novo hash,misturacontém conteúdo eother_hashreescreve hash da chave comother_hashcom um par de chave duplicada.
26 hash.merge! (other_hash) [ou]
hash.merge (other_hash) {| chave , OLDVAL, newval | block}
E mesclar o mesmo, mas, na verdade, de hash mudou.
27 hash.rehash
Restabelecer ohashcom base no valor atual de cadachave.Se você inserir o valor foi alterado, o processo seráde hash re-indexado.
28 hash.reject {| chave, valor | bloco }
Como é ocasode cadabloco dechave para criar um novohash.
29 hash.reject {| chave, valor | block}
Erejeitaro mesmo, mas, na verdade, de hash mudou.
30 hash.replace (other_hash)
Substitua o conteúdo dohashdoother_hash conteúdo.
31 hash.select {| chave, valor | bloco }
Retorna uma nova matriz, oblocoretornaverdadeirosvalores de chavede hashnos pares.
32 hash.shift
Retire dohashem um par de chaves e envia o valor de chave retornado como uma matriz de dois elementos.
33 hash.size
Ele retorna umhashinteiro dotamanhoou comprimento.
34 hash.sort
Ohashé convertida em uma matriz bidimensional contendo matriz de valores-chave e, em seguida classificadas.
35 hash.store (chave, valor)
Hasharmazenado em um par de valores-chave.
36 hash.to_a
Criar uma matriz bidimensional a partir do hash. Cada par de valores-chave em uma matriz, todas essas matrizes são armazenados em uma matriz.
37 hash.to_hash
Retornosde hash (self).
38 hash.to_s
Ohashé convertido para uma matriz, a matriz é convertido para uma cadeia.
39 hash.update (other_hash) [ou]
hash.update (other_hash) {| chave, OLDVAL, newval | block}
Retorna um novo hash,misturacontém conteúdo eother_hashreescrevehash dachave comother_hashcom um par de chave duplicada.
40 hash.value? (valor)
Verifique se ohashcontém ovalor dado.
41 hash.values
Ele retorna um novo array contendo todos os valores dohash.
42 hash.values_at (obj, ...)
Ele retorna uma nova matriz que contém o valor dehashassociado com uma determinada chave.