0
任何人都可以清楚這是如何工作的?Enumerable#sort_by方法是如何工作的?
frequencies = frequencies.sort_by { |a, b| b}
我知道它改變了哈希顯示的順序,但它是如何做的我不知道。
任何幫助表示讚賞。
任何人都可以清楚這是如何工作的?Enumerable#sort_by方法是如何工作的?
frequencies = frequencies.sort_by { |a, b| b}
我知道它改變了哈希顯示的順序,但它是如何做的我不知道。
任何幫助表示讚賞。
Enumerable#sort_by根據給定塊的返回值進行排序。 從你的例子看,frequencies
看起來像一個哈希。
這裏是一個Hash sort_by的例子
h = {:a => 2, :b => 1, :c => 4}
#=> {:a=>2, :b=>1, :c=>4}
h.sort_by {|k, v| v}
#=> [[:b, 1], [:a, 2], [:c, 4]]
Here is an explanation of what sort_by does.
是否有您有問題的文檔的任何特定部分?
看看這裏 - http://ruby-doc.org/core-2.0/Enumerable.html#method-i-sort_by –
'sort_by'用途一種由Randal Schwartz在Perl中流行的技術,通常稱爲「[Schwartzian變換](http://en.wikipedia.org/wiki/Schwartzian_transform)」。它預先計算一個與實際值相關的中間值,中間值用於排序。如果需要進行任何計算,它比正常的「排序」更快,特別是在處理複雜對象時。對於簡單的對象,比如整數,字符和字符串,'sort'通常會遠離'sort_by'。 –