Method: Range#eql?
- Defined in:
- range.c
permalink #eql?(other) ⇒ Boolean
Returns true
if and only if:
-
other
is a range. -
other.begin.eql?(self.begin)
. -
other.end.eql?(self.end)
. -
other.exclude_end? == self.exclude_end?
.
Otherwise returns false
.
r = (1..5)
r.eql?(1..5) # => true
r = Range.new(1, 5)
r.eql?('foo') # => false
r.eql?(2..5) # => false
r.eql?(1..4) # => false
r.eql?(1...5) # => false
r.eql?(Range.new(1, 5, true)) # => false
Note that even with the same argument, the return values of #== and #eql? can differ:
(1..2) == (1..2.0) # => true
(1..2).eql? (1..2.0) # => false
Related: Range#==.
251 252 253 254 255 256 257 258 259 |
# File 'range.c', line 251
static VALUE
range_eql(VALUE range, VALUE obj)
{
if (range == obj)
return Qtrue;
if (!rb_obj_is_kind_of(obj, rb_cRange))
return Qfalse;
return rb_exec_recursive_paired(recursive_eql, range, obj, obj);
}
|