-1
代碼如下,我想明白,這個特定的代碼在Hash.hash方法中確實to_a.sort_by(&:hash).hash
。我所知道的是,它首先將哈希變成數組,然後對數組進行排序,然後在Array
類上調用hash
方法。我想了解數組到底是如何排序的?什麼&:散列意味着在紅寶石
class Fixnum
# Fixnum#hash already implemented for you
end
class Array
def hash
each_with_index.inject(0) do |intermediate_hash, (el, i)|
(el.hash + i.hash)^intermediate_hash
end
end
end
class Hash
def hash
to_a.sort_by(&:hash).hash
end
end