Skip to content

Maintenance Ruby 3.4 gets fixes, but no new features. Switch to Ruby 4.0 →

instance method

Struct#eql?

(untyped other) -> bool
eql?(other) → true or false

Returns true if and only if the following are true; otherwise returns false:

  • other.class == self.class.

  • For each member name name, other.name.eql?(self.name).

    Example
    Customer = Struct.new(:name, :address, :zip)
    joe    = Customer.new("Joe Smith", "123 Maple, Anytown NC", 12345)
    joe_jr = Customer.new("Joe Smith", "123 Maple, Anytown NC", 12345)
    joe_jr.eql?(joe) # => true
    joe_jr[:name] = 'Joe Smith, Jr.'
    joe_jr.eql?(joe) # => false
    

Related: Object#==.

See also #each_pair #filter #each #hash also in 4.1 · 4.0 · 3.3 · 3.2 · 3.1 · 3.0