How to pass a custom comparator to “sort”?

前端 未结 4 1664
一向
一向 2020-12-25 12:42

Class A has the following comparator:

class A
  attr_accessor x

  def my_comparator(a)
    x**2 <=> (a.x)**2
  end
end

4条回答
  •  刺人心
    刺人心 (楼主)
    2020-12-25 13:06

    Both of these should work:

    items.sort_by! { |a| (a.x)**2 }
    items.sort! { |a1,a2| a1.my_comparator(a2) }
    

提交回复
热议问题