0
A
回答
4
當然可以!這對Ruby的飛船運營商的谷歌有幫助。
您需要包含Comparable
模塊,然後執行該方法。看看覆蓋<=>
的簡單的例子:http://brettu.com/rails-daily-ruby-tips-121-spaceship-operator-example/
我會採取從文章的例子:
class Country
include Comparable
attr_accessor :age
def initialize(age)
@age = age
end
def <=>(other_country)
age <=> other_country.age
end
end
對於超載<=>
你並不需要通過包括它包括Comparable
模塊,但是,它會將一些有用的方法「混入」您的Country
類,並與之進行比較。
讓我們看一些例子:
country1 = Country.new(50)
country2 = Country.new(25)
country1 > country2
# => true
country1 == country2
# => false
country1 < country2
# => false
country3 = Country.new(23)
[country1, country2, country3].sort
# => [country3, country2, country1]
但是,如果沒有包括Comparable
模塊:
country1 > country2
# => NoMethodError: undefined method `>' for #<Country:...>
祝你好運!
相關問題
- 1. >><<和運算符重載
- 2. C++重載運算符<<和運算符>>
- 3. 未能超載運算符<<(C++)
- 4. C++ 11 <<運算符specefic超載
- 5. 如何超載運算符<<
- 6. 運算符<< C++中的超載
- 7. 超載運算符<<用於ostream
- 8. 超載「<<」運算符的問題
- 9. 與Ruby混淆<=>運算符
- 10. 運算符重載'<<' and '>>'和一個字符串
- 11. 運算符超載[]
- 12. 運算符超載
- 13. 運算符==超載
- 14. 運算符+超載
- 15. 運算符超載
- 16. 運算符超載
- 17. 運算符超載賦值運算符
- 18. C++ << >>運算符
- 19. 按位運算符「>>」和「<<」?
- 20. 運算符重載C++ - 重載輸出「<<」運算符
- 21. 獲取字符串只在超載>>運算符istream:
- 22. C++運算符「<" and ">」
- 23. PHP運算符<>
- 24. QList <QString>運算符<<
- 25. 你如何在Ruby中重載<<運算符?
- 26. 運算符*超載C++
- 27. 鏈接超載+運算符
- 28. 運算符+超載C++
- 29. 未能超載運算符+ =
- 30. 結構運算符超載
你可以實現'<=>'而不包括'Comparable' – Stefan 2015-03-02 11:27:39
的確。這種關係是倒退的:當包含「Comparable」時,你需要實現'<=>'。 – 2015-03-02 11:29:34
謝謝澄清!沒有包括'可比較的'沒有嘗試,但我會! – 2015-03-02 11:58:08