Difference between <=> and == in Ruby?
What are their differences? Coming from a Java background, it doe开发者_开发问答s seem to me <=> is the same as Java's equals(), while == is for direct reference comparison. Is this right?
== only measures if two objects are equal, whereas <=> should return -1 if the first object is smaller, 0 if they are equal, and 1 if the first object is greater.
If you define a <=> method for your class, you'll get all of the other comparison operators defined as well (==, <, >, and so on).
Can't say I'm not trying to promote myself, but I wrote a full length tutorial about comparison and equality operators in Ruby: "Ruby Basics – Equality operators in Ruby"
In there you can see the differences between all the equality operators, including <=>, == and === (and the implications of implementing them, including the hash method implementation).
== is like Java's equals, while <=> is like compareTo. == compares the two objects and returns whether they are equivalent. a <=> b compares the two objects and returns 1 if a is bigger, 0 if they are the same and -1 if b is bigger.
加载中,请稍侯......
精彩评论