考虑一个类 Team,类变量为“wins”和“losses”。我希望按胜负比对一组团队进行排序,例如:
5:0 > 3:0 > 1:0 > 3:1 > 5:5 > 3:3 > 1:3 > 0:1 > 0:3 > 0:5
我已经有一个我不满意的(部分)破解的解决方案,我想知道是否有更清洁/更优雅/更简单的方法来解决这个问题。
def ratio
if @losses == 0 then
return 1000000+@wins
end
if @wins == 0 then
return 0-@losses
end
return @wins/@losses
end
(这不能解决 5:5 > 3:3)
这将在 Team 类中,可以像这样使用:
teams.sort! { |a, b| b.ratio <=> a.ratio }
解决这个问题的最简单方法是什么?(解决方案不一定是 Ruby,我对 OO 的任何东西都很满意)