Оператор Override == в Ruby
В соответствии с docs Array.include? использует сравнение == на объектах. Я пришел из Java, где такие вещи (обычно) выполняются с помощью .equals(), который легко переопределить для определенного объекта.
Как я могу переопределить == в Ruby, чтобы я мог указать поведение Array.include? для моего конкретного объекта?
Большое спасибо.
Ответы
Ответ 1
В Ruby ==
это всего лишь метод (с сахаром синтаксиса сверху, позволяющим писать foo == bar
вместо foo.==(bar)
), и вы переопределяете ==
так же, как и любой другой метод:
class MyClass
def ==(other_object)
# return true if self is equal to other_object, false otherwise
end
end