-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