Equality â At the Object level, == returns
true only if obj and other are the
same object. Typically, this method is overridden in descendant classes to
provide class-specific meaning.
Unlike ==, the equal? method should never be
overridden by subclasses as it is used to determine object identity (that
is, a.equal?(b) if and only if a is the same
object as b):
obj = "a" other = obj.dup a == other #=> true a.equal? other #=> false a.equal? a #=> true
The eql? method returns true if obj
and other refer to the same hash key. This is used by Hash to test members for equality. For objects of
class Object, eql? is synonymous with
==. Subclasses normally continue this tradition by aliasing
eql? to their overridden == method, but there are
exceptions. Numeric types, for example, perform type
conversion across ==, but not across eql?, so:
1 == 1.0 #=> true 1.eql? 1.0 #=> false
Please login to continue.