gpt4 book ai didi

ruby *args 语法错误

转载 作者:数据小太阳 更新时间:2023-10-29 07:56:50 26 4
gpt4 key购买 nike

我发现了我想了解的这个怪异之处。如果我在 pry 中定义这两个方法...

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)

所以,在模块内部,一个用“=”定义的方法总是需要一个参数。这对我来说没有意义。

我错过了什么

最佳答案

Ruby 解释器的解析。尝试

j.send :test=, 1, 2, 3

关于ruby *args 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12318980/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com