代码如下,我试图理解这个特定的代码在Hash.hash方法中to_a.sort_by(&:hash).hash
。我所知道的是,它首先将哈希变为数组,对数组进行排序,然后在hash
类上调用Array
方法。我试图了解数组究竟是如何排序的?
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
答案 0 :(得分:0)