Ruby解释器的解析。尝试
我发现了这种我想理解的奇怪之处。如果我在priry中定义这两种方法。。。
def test(*args)
puts args
end
def test=(*args)
puts args
end
他们都工作。但是,如果我把上面的代码放在一个模块中,并将该模块包括在另一个类中(比如说,类Job),那么下面的
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)
因此,在模块内部,用"="定义的方法似乎总是需要一个arg。这对我来说没有意义。
我缺少什么
j.send :test=, 1, 2, 3
直接使用
j.test = 1,2,3
或
j.test= ([1,2,3])
或`
j.send('test=',[1,2,3])