在ruby中对范围进行排序的最优雅方法是什么?

时间:2015-12-26 00:21:10

标签: ruby

我需要按照起始点对Range类型的对象进行排序。为此我有以下代码可以正常工作:

ranges = @ranges.sort do |a,b|
  (a.min) <=> (b.min)
end

我只是想知道是否有一种更简洁,更优雅的方式来做同样的事情。

1 个答案:

答案 0 :(得分:9)

怎么样:

ranges = @ranges.sort_by(&:min)

或者,如果您实际上是指起点而不是最小值,因为(5..3)等范围可以存在:

ranges = @ranges.sort_by(&:first)