<< Previous Page
    

    
      Table of Contents
    

    
      Next Page >>
    
  
09
%q{Equality}

%q{== vs ===}
"abc" == /abc/
=> false

"abc" === /abc/
=> false

/abc/ === "abc"
=> true

String === "abc"
=> true

p = proc {|x| x>='a'}
p === 'abc'
=> true

Object.new == Object.new
=> false

Object.new === Object.new
=> false

Object === Object.new
=> true

Object.new === Object
=> false

Book = Class.new
1 == 2
=> false

1 == 1
=> true

1 === 2
=> false

1 === Integer
=> false

Integer === 1
=> true


{a: 'b'} == {a: 'B'}
=> false

{a: 1} == {a: 1.0}
=> true

{a: 'b'} === {a: 'B'}
=> false

{a: 1} === {a: 1.0}
=> true
5 === (1..10)
=> false

(1..10) === 5
=> true

(1..10) === (2..4)
=> false

(1..10) === (2..4)
=> false

(2..4) === (1..10)
=> false


Hash === {a: 1}
=> true

{a: 1} === Hash
=> false

Class === Class.new
=> true

Class.new === Class
=> false

Class === Class.new.new
=> false
Class.new(Book) == Class.new(Book)       Book == Class.new(Book)
=> false => false

Class.new(Book) === Class.new(Book) Book === Class.new(Book)
=> false => false

Book === Class.new(Book).new
%q{eql? vs equal?} => true
Object.new.eql?
(Object.new)
=> false

Object.new.equal?
(Object.new)
=> false

a = Object.new
a.eql?(a)
=> true

a = Object.new
a.equal?(a)
=> true
1.eql?(1)
=> true

1.equal?(1)
=> true

1.eql?(1.0)
=> false

1.equal?(1.0)
=> false

{a: 5}.eql?({a: 5})
=> true
{a: 5}.equal?({a: 5})
=> false

"a".eql?("a")
=> true

"a".equal?("a")
=> false

a = "a".freeze
b = "b".freeze
a.equal? b
=> true
09
    
      << Previous Page
    

    
      Table of Contents
    

    
      Next Page >>