Override == operator in Ruby

后端 未结 2 472
不思量自难忘°
不思量自难忘° 2020-12-15 03:10

According to the docs, Array.include? uses the == comparison on objects. I come from Java where such things are (usually) done with

2条回答
  •  春和景丽
    2020-12-15 03:28

    As described above, == is a method is Ruby and can be overrided. You will just write down the equality condition.

    class Person
      attr_reader :name, :gender, :social_id
      attr_accessor :age
    
      def initialize(name, age, gender, social_id)
        self.name = name
        self.age = age.to_i
        self.gender = gender
        self.social_id = social_id
    
      def ==(other)
        social_id == other.social_id
    

    You don't need to override other methods any more

提交回复
热议问题