У меня есть следующие два метода, которые, как я считаю, должны иметь одинаковое поведение независимо от их имен:
def a=(*params)
params
end
def b(*params)
params
end
Но когда на самом деле я их использую:
a=(1) # => 1
b(1) # => [1]
(a=1) == b(1) # => false
пока интересно:
(a=1,2) == b(1,2) # => true
Почему их поведение не одинаково?
Редактировать: забыл обернуть вышеизложенное в класс/вызов с self.
, который случайно приводит к такому же поведению, но по другой причине. Это было указано в ответах.
self.
, когда пытался привести минимальный пример, где проблема может быть воспроизведена, потому что случайно она по-прежнему вызывала ту же проблему. К сожалению, таким образом, вопрос глупый, но в конце концов я получил ответ на свою настоящую проблему в ответе, на который вы ссылаетесь. - person thisismydesign   schedule 08.09.2017