[RUBY] Ce que vous avez appris sur le hachage

Méthodes fréquemment utilisées dans le hachage

méthode des clés

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]  

méthode des valeurs

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"]

méthode has_key?

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

Développez le hachage avec **

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'}

Tableau et hachage

méthode to_a

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"]]

méthode to_h

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"}

Valeur initiale du hachage

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

Ce que vous avez appris sur le hachage
Ce que vous avez appris sur les symboles
Ce que j'ai appris sur Kotlin
À propos du hachage
Prenez ce que vous avez appris sur la réflexion Java
À propos de Ruby Hash
Ce que j'ai appris
À propos de Ruby Hash
Résumé de ce que j'ai appris sur Spring Boot
À propos de Ruby Hash (suite)
Ce que j'ai appris ② ~ Mock ~
Ce que j'ai appris ① ~ DJUnit ~
J'écrirai quand même ce que j'ai appris sur docker (deuxième)
J'écrirai de toute façon ce que j'ai appris sur docker (en premier)
Ce que j'ai recherché sur Java 8
Ce que j'ai recherché sur Java 6
Ce que j'ai recherché sur Java 9
À propos des hachages et symboles Ruby
Ce que j'ai recherché sur Java 7
Résumez les mots que vous avez appris
config.ru Que faites-vous?
Ce que vous avez appris lors de l'acquisition de Java SE 8 Silver and Gold
[Android / Java] En savoir plus sur DataBinding
Ce que j'ai recherché sur Java 5
Ce que j'ai appris en étudiant les rails
À propos de la langue à apprendre à partir de maintenant
Ce que j'ai appris avec Java Gold
Ce que j'ai appris avec Java Silver
Ce que j'ai recherché sur l'apprentissage Java