我需要按照起始点对Range
类型的对象进行排序。为此我有以下代码可以正常工作:
ranges = @ranges.sort do |a,b|
(a.min) <=> (b.min)
end
我只是想知道是否有一种更简洁,更优雅的方式来做同样的事情。
答案 0 :(得分:9)
怎么样:
ranges = @ranges.sort_by(&:min)
或者,如果您实际上是指起点而不是最小值,因为(5..3)
等范围可以存在:
ranges = @ranges.sort_by(&:first)