Ruby 的组合比较运算符或宇宙飞船运算符用于排序。我把这个算子和sort
函数一起用了,不明白这个算子的机制。这个运算符还有其他用途吗?
问问题
330 次
2 回答
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
于 2016-06-10T02:36:05.407 回答
0
Comparable 模块需要宇宙飞船操作员。基本上:在你的类中,在这个类和 >、<=、<、>=、== 和之间include Comparable
定义一个方法?<=>
方法是自动为该类定义的。
于 2016-06-10T10:02:34.600 回答