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;
}