【发布时间】:2018-02-17 09:22:13
【问题描述】:
我有以下两种方法,我认为不管它们的名字,它们应该具有相同的行为:
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. 将上述内容包装在一个类/调用中,这会意外产生相同的行为,但原因不同。答案中已经指出。
【问题讨论】:
-
我回滚了您的编辑,因为您在获得 mudasobwa 的答案后更改了问题,该答案关键地指出了与您更改的部分相关的内容。不要在那个时候改变你的问题。
-
抱歉,忘记添加
self.,而我试图提供一个可以重现问题的最小示例,因为它意外地仍然产生了相同的问题。不幸的是,这个问题很愚蠢,但最后我确实在你所指的答案中得到了我真正问题的答案。