Une méthode qui renvoie la clé du hachage sous forme de tableau
méthode clé
languages = { japan: 'Japanese', us: 'English', india: 'Hindi' }
languages.keys #=>[:japan, :us, :india]
Une méthode qui renvoie la valeur de hachage sous forme de tableau
méthode des valeurs
languages = { japan: 'Japanese', us: 'English', india: 'Hindi' }
languages.values #=> ["Japanese", "Enlgish", "Hindi"]
Une méthode pour vérifier si la clé spécifiée existe dans le hachage
has_key?
languages = { japan: 'Japanese', us: 'English', india: 'Hindi' }
languages.has_key?(:japan) #=> true
languages.has_key?(:italy) #=> false
Préfixez un hachage avec ** pour développer les clés et les valeurs des autres hachages dans le littéral de hachage
**
h = { us: 'English', india: 'Hindi' }
{ japan: 'Japanese', **h } #=> {japan: 'Japanese', us: 'English', india: 'Hindi'}
#Le même effet peut être obtenu en utilisant la méthode de fusion.
{ japan: 'Japanese'}.merge(h) #=> {japan: 'Japanese', us: 'English', india: 'Hindi'}
Une méthode pour convertir un hachage en tableau à l'aide de la méthode to_a
to_a
languages = { japan: 'Japanese', us: 'English', india: 'Hindi' }
languages.to_a #=> [[:japan, "Japanese"], [:us, "English"], [:india, "Hindi"]]
Une méthode qui peut convertir un tableau en hachage
to_h
array = [[:japan, "Japanese"], [:us, "English"], [:india, "Hindi"]]
array.to_h #=> {:japan=>"Japanese", :us=>"English", :india=>"Hindi"}
#To pour un tableau qui ne peut pas être analysé comme un hachage_L'appel de la méthode h entraîne une erreur
array = [5, 6, 7, 8]
array.to_h #=> TypeError: wrong element type Integer at 0 (expected array)
#Erreur inattendue lors de la duplication des clés
array = [[:japan, "Japanese"], [:japan, "Japonais"]]
array.to_h #=> {:japan=>"Japonais"}
Il peut également être converti en tableau en le passant à Hash []
Hash[]
array = [[:japan, "Japanese"], [:us, "English"], [:india, "Hindi"]]
Hash[array] #=> {:japan=>"Japanese", :us=>"English", :india=>"Hindi"}
python
h = Hash.new('OK')
a = h[:aaa] #=> "ok"
b = h[:bbb] #=> "ok"
#Les variables a et b sont le même objet
a.equal?(b) #=> true
#Si vous apportez une modification destructive à la variable a, la valeur de la variable b changera également.
a.upcase!
a #=> "OK"
b #=> "OK"
Utiliser des blocs
h = Hash.new{'OK'}
a = h[:aaa] #=> "ok"
b = h[:bbb] #=> "ok"
#Les variables a et b sont des objets différents
a.equal?(b) #=> false
#L'application de modifications destructives à la variable a ne modifie pas la valeur de la variable b
a.upcase!
a #=> "OK"
b #=> "ok"
Les références Une introduction à Ruby pour ceux qui veulent devenir des professionnels
Recommended Posts