0

並べ替えには、Ruby の複合比較演算子 (宇宙船演算子) が使用されます。この演算子をsort関数で使用しましたが、この演算子のメカニズムを理解できません。この演算子の他の用途はありますか?

4

2 に答える 2

5

基本的に、2 つの値がすべて 1 つの演算子でより大きい、より小さい、または等しいかどうかを尋ねています。これを使用して値を返し、メソッドにインクリメント、デクリメント、または何もしないように指示できます。

1 <=> 3 returns -1
3 <=> 1 returns 1
3 <=> 3 returns 0

たとえば、ゲームに勝った場合は 1 ポイント、負けた場合はマイナス 1 ポイント、引き分けの場合は変更なしというスコア管理方法があるとします。

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 に答える