Ruby的组合比较运算符或宇宙飞船运算符用于排序。我将此运算符与sort
函数一起使用,并且无法理解此运算符的机制。该运营商还有其他用途吗?
答案 0 :(得分:5)
您基本上是在一个运算符中询问两个值是否大于,小于或等于。您可以使用它来返回一个值来告诉方法增加,减少或什么都不做。
1 <=> 3 returns -1
3 <=> 1 returns 1
3 <=> 3 returns 0
例如,如果你有一个得分保持方法可以为你赢得的比赛赢得一分,减去你输掉一场比赛的一分,或者没有改变比赛......
def score(player_1, player_2, current_score)
current_score + player_1 <=> player_2
end
所以...
score(1,2,0)
#=> -1
score(1,3,-1)
#=> -2
score(3,2,-2)
#=> -1
score(3,0,-1)
#=> 0
score(4,0,0)
#=> 1
score(3,0,1)
#=> 2
score(3,3,2)
#=> 2
答案 1 :(得分:0)
Comparable module需要宇宙飞船运营商。基本上:您的班级include Comparable
,在此课程中定义<=>
方法,&gt;,&lt; =,&lt; ,&gt; =,==,和之间?为该类自动定义方法。