我发现了这个我想理解的怪异。如果我定义撬这两种方法...ruby * args语法错误
def test(*args)
puts args
end
def test=(*args)
puts args
end
他们都work.But如果我把一个模块在上面的代码,并包括了另一类模块(比如,类工作),下面
j=Job.last
j.test=(1,2,3)
引发以下错误......
SyntaxError: (irb):3: syntax error, unexpected ',', expecting ')'
j.test=(1,2,3)
^
预期下工作...
j.test=[1,2,3]
j.test=(1)
因此,它看起来像模块内部,用'='定义的方法总是期望一个参数。这对我来说没有意义。
我在想什么
以上的产率“未定义的方法'测试=”为#<作业:0x007fdd3c844498> “ – Paul
尝试j.methods.include?(:test =)。 –