【发布时间】:2013-07-30 16:47:51
【问题描述】:
谁能弄清楚这是如何工作的?
frequencies = frequencies.sort_by { |a, b| b}
我知道它改变了哈希的显示顺序,但我不知道它是如何做到的。
感谢任何帮助。
【问题讨论】:
-
sort_by使用 Randal Schwartz 在 Perl 中流行的一种技术,通常称为“Schwartzian Transform”。它预先计算一个中间值,该中间值与实际值相关联,中间值用于排序。如果需要任何计算,它比普通的sort更快,尤其是在处理复杂对象时。对于简单的对象,例如整数、字符和字符串,sort通常会在速度方面远离sort_by。