Подтвердить что ты не робот

Оператор Override == в Ruby

В соответствии с docs Array.include? использует сравнение == на объектах. Я пришел из Java, где такие вещи (обычно) выполняются с помощью .equals(), который легко переопределить для определенного объекта.

Как я могу переопределить == в Ruby, чтобы я мог указать поведение Array.include? для моего конкретного объекта?

Большое спасибо.

4b9b3361

Ответ 1

В Ruby == это всего лишь метод (с сахаром синтаксиса сверху, позволяющим писать foo == bar вместо foo.==(bar)), и вы переопределяете == так же, как и любой другой метод:

class MyClass
  def ==(other_object)
    # return true if self is equal to other_object, false otherwise
  end
end