我使用此代码对Hash进行排序; 我不知道它是如何工作的。 请向我解释:
def foo(hash)
Hash[hash.sort]
end
irb(main):001:0> h = {1=>'z', 3=>'x', 2=>'y'}
=> {1=>"z", 3=>"x", 2=>"y"}
irb(main):002:0> Hash[h.sort]
=> {1=>"z", 2=>"y", 3=>"x"}
irb(main):003:0>
答案 0 :(得分:1)
Enumerable#sort
返回键值对的排序数组:
h = {b: 1, a: 2}
h.sort
# => [[:a, 2], [:b, 1]]
Hash::[]
在参数上创建一个新的哈希基础:
Hash[h.sort]
# => {:a=>2, :b=>1}
顺便说一句,如果您使用Ruby 2.1+,则可以使用Array#to_h
代替:
h.sort.to_h
# => {:a=>2, :b=>1}