Über das Verhalten von Ruby Hash # ==

Wie weit vergleichen Sie Hash auf Ruby miteinander? Ich war neugierig und habe versucht, es zu überprüfen.

Infolgedessen, obwohl es im offiziellen Dokument beschrieben ist ** Gibt true zurück, wenn self und other die gleiche Anzahl von Schlüsseln haben, die Schlüssel im Vergleich zur eql? -Methode alle gleich sind und die Werte im Vergleich zur == -Methode alle gleich sind. ** ** **

Referenz: Instanzmethode Hash # ==

Es scheint zu funktionieren, lassen Sie uns überprüfen.

require 'securerandom'

keys   = Array.new
values = Array.new

#Erstellen Sie 1000 Testdaten
1000.times do
  keys << SecureRandom.alphanumeric
end

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

#Vergleich verschiedener Wertinhalte
a = Hash.new
b = Hash.new
keys.each do |key|
  a[key] = values.sample
  b[key] = values.sample
end

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

#
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..."

Ergebnis

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

Es scheint, dass es richtig verglichen wird, wie es offiziell geschrieben ist.

Recommended Posts

Über das Verhalten von Ruby Hash # ==
Über den Umgang mit Null
Informationen zur Beschreibung von Docker-compose.yml
[Technisches Memo] Über die Vor- und Nachteile von Ruby
Über die Grundlagen der Android-Entwicklung
Extraktion von "Ruby" Double Hash * Review
[Ruby] Fragen und Überprüfung der Anzahl der Methodenargumente
Ein Hinweis zum Seed-Feature von Ruby on Rails
Informationen zur Rolle der Initialisierungsmethode
[Ruby] So rufen Sie den Inhalt des Doppel-Hash ab
Denken Sie an die 7 Regeln von Optional
Informationen zum Standardverhalten der Bruchrundung mit java.text.NumberFormat
Erklärt Ruby Array-Objekte
[Ruby] Ich möchte die Reihenfolge der Hash-Tabelle umkehren
[Ruby] Zeigt den Inhalt von Variablen an
Informationen zur Protokollebene von java.util.logging.Logger
Verhalten von Files.copy (pathA, pathB) zum Zeitpunkt des Fehlers
Was ist ein Test? ・ Über die Wichtigkeit eines Tests
Informationen zur Funktionsweise von next () und nextLine ()
[Ruby] Schneiden Sie den Inhalt von Twitter-Anzeigen ab
Informationen zur ersten Anzeige von Spring Framework
Über die Behandlung von BigDecimal (mit Reflexion)
Über die Anzahl der Threads von Completable Future
Untersuchen Sie das Verhalten des JPA-Transaktionszeitlimits
[Java] [Spring] Testen Sie das Verhalten des Loggers
Über Ruby-Symbole
Über Ruby Hash
Ruby Hash Notizen
[Ruby] Über das Abrufen von Hash
[Über Double Hash]
Grundlagen von Ruby
[Ruby] Ich möchte nur den Wert des Hash und nur den Schlüssel extrahieren
Über die Methode
[Einführung in Ruby] Über die Rolle von true und break in der while-Anweisung
Über Ruby-Arrays
[Rubin] Doppelter Hash
Informationen zur Ruby-Vererbung
Über Rubinblock
Über Ruby Hash
Über Ruby-Symbole
Über das Paket
Über Ruby-Methoden
Verhalten von ThreadPoolTaskExecutor
So finden Sie die Ursache des Ruby-Fehlers
[Ruby] Zusammenfassung der Klassendefinitionen. Beherrsche die Grundlagen.
[Ruby] Über das Verhalten der Auswertung von bedingten Ausdrücken in while
Denken Sie an die Kombination von Servlet und Ajax
Über den offiziellen Startleitfaden für Spring Framework