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

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

我只是想知道是否有更短而优雅的方法来做同样的事情。

最佳答案

怎么样:

ranges = @ranges.sort_by(&:min)

或者,如果您实际上是指起点而不是最小值,则因为可以存在诸如(5..3)之类的范围:
ranges = @ranges.sort_by(&:first)

关于ruby - 在 ruby 中对范围进行分类的最优雅方法是什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34467544/

10-11 07:19