Ruby的組合比較運算符或飛船運算符用於排序。我用這個運算符與sort
函數,並不能理解這個運算符的機制。這個操作符還有其他用途嗎?除了排序之外,有沒有使用ruby組合比較操作符/飛船操作符?
0
A
回答
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
0
需要針對Comparable module飛船操作。基本上:include Comparable
在你的班級裏,定義了一個<=>
這個班的方法和>,< =,<,> =,==,和之間?方法會自動爲該類定義。
相關問題
- 1. 使用usort和飛船操作符正確排序多維數組
- 2. 太空船操作員何時在排序之外使用?
- 3. 字符串比較操作
- 4. 重載操作符<比較字符串,使用string.compare排序鏈接列表?
- 5. 操作數的順序是否與比較運算符有關?
- 6. 比較操作
- 7. Wierd Java字符串比較操作
- 8. Groovy列表清單:當飛船操作失敗時,排序如何工作?
- 9. '|| ='操作符在ruby中做了什麼?
- 10. 調用我的全局操作符刪除操作通過刪除操作符
- 11. 在條件之外使用短路操作符是否合法?
- 12. 沒有操作符「>>」與這些操作數匹配
- 13. 錯誤沒有操作符「>>」匹配這些操作數
- 14. 「錯誤:沒有操作符」=「匹配這些操作數」
- 15. 沒有操作符「<=」匹配這些操作數
- 16. 錯誤操作符<<重載 - 沒有操作員發現
- 17. 沒有操作符匹配||這些操作數
- 18. 使用$#操作符
- 19. 使用「:」操作符
- 20. Ruby字符串ASCII操作?
- 21. 隱式轉換操作符不符合操作符重載
- 22. 沒有匹配的操作符'='
- 23. 沒有左側的Tilde操作符
- 24. php沒有空格的操作符
- 25. 沒有類的重載操作符
- 26. 有關使用操作符「或」
- 27. tsql!>操作符有什麼作用?
- 28. - >< - 操作符有什麼作用?
- 29. $操作符有什麼作用?
- 30. * =操作符有什麼作用?
它在技術上不是運營商,而是您定義的一種方法。 這意味着「任何其他用途」取決於您想象和設計。 所以你寫的問題的答案是「是」。 – vgoff