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