eql?(p1)
public
Equality—At the Object level, == returns true
only if obj and other are the same object. Typically,
this method is overridden in descendent
classes to provide class-specific meaning.
Unlike ==, the equal? method should never be overridden by
subclasses: it is used to determine object identity (that is, a.equal?(b) iff a is the same object as b).
The eql? method returns true if obj and
anObject have the same value. Used by
Hash to test members for equality. For objects of
class Object,
eql? is synonymous with ==. Subclasses
normally continue this tradition, but there are exceptions. Numeric types, for example, perform type conversion across ==, but not across
eql?, so:
1 == 1.0
1.eql? 1.0
Show source
/*
* call-seq:
* obj == other => true or false
* obj.equal?(other) => true or false
* obj.eql?(other) => true or false
*
* Equality---At the <code>Object</code> level, <code>==</code> returns
* <code>true</code> only if <i>obj</i> and <i>other</i> are the
* same object. Typically, this method is overridden in descendent
* classes to provide class-specific meaning.
*
* Unlike <code>==</code>, the <code>equal?</code> method should never be
* overridden by subclasses: it is used to determine object identity
* (that is, <code>a.equal?(b)</code> iff <code>a</code> is the same
* object as <code>b</code>).
*
* The <code>eql?</code> method returns <code>true</code> if
<i>obj</i> and <i>anObject</i> have the
* same value. Used by <code>Hash</code> to test members for equality.
* For objects of class <code>Object</code>, <code>eql?</code> is
* synonymous with <code>==</code>. Subclasses normally continue this
* tradition, but there are exceptions. <code>Numeric</code> types, for
* example, perform type conversion across <code>==</code>, but not
* across <code>eql?</code>, so:
*
* 1 == 1.0
* 1.eql? 1.0
*/
static VALUE
rb_obj_equal(obj1, obj2)
VALUE obj1, obj2;
{
if (obj1 == obj2) return Qtrue;
return Qfalse;
}