Я пытаюсь переопределить операцию ==
, как показано на рисунке here. Я создал ==
, как так:Переопределение == Оператор не работает и выходит из программы
class Point
def ==(g)
p'Never reaches here'
if @x==g.grid
true
else
false
end
end
end
Я вызываю метод, как так:
def home? (gridPoint,point)
if point==gridPoint
do something
end
При запуске приложения, "Never reaches here"
никогда не печатается, а приложение пропускает оставшуюся часть кода и выходов ,
Если я напечатаю gridPoint
и Point
прямо перед ==
, я вижу, что они оба. Почему программа, похоже, никогда не вводила метод ==
?
Я пробовал point.==(gridPoint)
. Это также не работает, а также не позволяет цели очистить код.
Может ли кто-нибудь мне помочь?
Мда. Кажется, что это нормально для меня. – Schylar
Работаю также и для меня. Класс 'Point' должен быть заглавным, не так ли? Возможно, это ошибка в 'gridPoint' или' point', что они, возможно, не являются экземплярами класса, который вы объявили. – jayelm
Я думаю, что я скучаю. Как вы, ребята, можете сказать, что это работает для вас, если код не является неполным? @Bawn, не могли бы вы обновить свой вопрос некоторым кодом, который позволяет воспроизвести ошибку - откуда происходит '@ x'? Что такое метод 'grid'? Что такое 'gridPoint' и как он отличается от формы' Point'? – BroiSatse