À propos du comportement de ruby Hash # ==

Dans quelle mesure comparez-vous Hash les uns aux autres sur le rubis? J'étais curieux, alors j'ai essayé de le vérifier.

En conséquence, bien qu'il soit décrit dans le document officiel ** Renvoie true si self et other contiennent le même nombre de clés, les clés sont toutes égales comparées par la méthode eql? Et les valeurs sont toutes égales par rapport à la méthode ==. ** **

Référence: méthode d'instance Hash # ==

Cela semble fonctionner, vérifions.

require 'securerandom'

keys   = Array.new
values = Array.new

#Créer 1000 données de test
1000.times do
  keys << SecureRandom.alphanumeric
end

1000.times do
  values << SecureRandom.base64(100)
end

#Comparaison de différents contenus de valeur
a = Hash.new
b = Hash.new
keys.each do |key|
  a[key] = values.sample
  b[key] = values.sample
end

puts a == b ? "match!!" : "unmatch..."

#Comparaison avec le même contenu de valeur
a = Hash.new
b = Hash.new
keys.each_with_index do |key, i|
  a[key] = values[i]
  b[key] = values[i]
end

puts a == b ? "match!!" : "unmatch..."

résultat

$ >> ruby test.rb
unmatch...
match!!

Il semble qu'il soit correctement comparé, tel qu'il est officiellement écrit.

Recommended Posts

À propos du comportement de ruby Hash # ==
À propos de la gestion de Null
À propos de la description de Docker-compose.yml
[Note technique] À propos des avantages et des inconvénients de Ruby
À propos des bases du développement Android
Extraction du double hash "ruby" * Avis
[Ruby] Questions et vérification du nombre d'arguments de méthode
Une note sur la fonction de départ de Ruby on Rails
À propos du rôle de la méthode initialize
[Ruby] Comment récupérer le contenu du double hachage
Pensez aux 7 règles d'Optionnel
À propos du comportement par défaut de l'arrondi des fractions à l'aide de java.text.NumberFormat
Explique les objets Ruby Array
[Ruby] Je souhaite inverser l'ordre de la table de hachage
[Ruby] Afficher le contenu des variables
À propos du niveau de journalisation de java.util.logging.Logger
Comportement de Files.copy (pathA, pathB) au moment de l'erreur
Qu'est-ce qu'un test? ・ À propos de l'importance d'un test
À propos du fonctionnement de next () et nextLine ()
[Ruby] Coupez le contenu des publicités Twitter
À propos de l'affichage initial de Spring Framework
À propos du traitement de BigDecimal (avec réflexion)
À propos du nombre de threads de Completable Future
Examiner le comportement du délai d'expiration des transactions JPA
[Java] [Spring] Tester le comportement de l'enregistreur
À propos des symboles Ruby
À propos de Ruby Hash
Notes de Ruby Hash
[Ruby] À propos de la récupération du hachage
[À propos du double hachage]
Bases de Ruby
[Ruby] Je souhaite extraire uniquement la valeur du hachage et uniquement la clé
À propos de la méthode
[Introduction à Ruby] À propos du rôle de true et break in the while statement
À propos des tableaux Ruby
[ruby] Double hachage
À propos de l'héritage Ruby
À propos de Ruby Block
À propos de Ruby Hash
À propos des symboles Ruby
À propos du paquet
À propos des méthodes Ruby
Comportement de ThreadPoolTaskExecutor
Comment trouver la cause de l'erreur Ruby
[Ruby] Résumé des définitions de classe. Maîtrisez les bases.
[Ruby] À propos du comportement d'évaluation des expressions conditionnelles dans while
Pensez à la combinaison de Servlet et Ajax
À propos du guide de démarrage officiel de Spring Framework