Maintenance Ruby 3.3 gets fixes, but no new features. Switch to Ruby 4.0 →
instance method
Object#<=>
obj <=> other → 0 or nil
object.c
View on GitHub ↗
static VALUE
rb_obj_cmp(VALUE obj1, VALUE obj2)
{
if (rb_equal(obj1, obj2))
return INT2FIX(0);
return Qnil;
}
Returns 0 if obj and other are the same object or obj == other, otherwise nil.
The <=> is used by various methods to compare objects, for example Enumerable#sort, Enumerable#max etc.
Your implementation of <=> should return one of the following values: -1, 0, 1 or nil. -1 means self is smaller than other. 0 means self is equal to other. 1 means self is bigger than other. Nil means the two values could not be compared.
When you define <=>, you can include Comparable to gain the methods <=, <, ==, >=, > and between?.