我想指定一个自定义块方法,通过评估两个属性来对对象数组进行排序。但是,经过多次搜索,我没有找到任何没有<=>
运算符的示例。
我想a
比较b
:
if a.x less than b.x return -1
if a.x greater than b.x return 1
if a.x equals b.x, then compare by another property , like a.y vs b.y
这是我的代码,它不起作用:
ar.sort! do |a,b|
if a.x < b.y return -1
elseif a.x > b.x return 1
else return a.y <=> b.y
end
此块在函数内,return
正在退出函数并返回-1
。