gpt4 book ai didi

Ruby block 参数错误

转载 作者:太空宇宙 更新时间:2023-11-03 17:41:36 25 4
gpt4 key购买 nike

class MyClass
def test
...
end
end

tmp = MyClass.new
tmp.test do |t|
"here"
end

为什么会报错

multiple values for a block parameter (0 for 1)

最佳答案

根据您的代码,这是一个稍长的示例:

class MyClass
def test
yield self
end

def my_own_puts s
puts s
end

end

tmp = MyClass.new
tmp.test do |t|
t.my_own_puts "here"
end

运行这段代码会输出“here”。

发生的事情是有一个方法测试可以接受一段代码,因此您可以使用 do .. end 语法调用它。因为它正在传递一个 arg 给 yield,该 arg 可用于该 block ,所以您可以使用 do |some_arg_name| 将其提供给该 block ...结束语法。

yield 是 block 在测试方法中执行的地方,在这种情况下,我要 yield 我通过 self.由于该 block 现在可以访问 self(MyClass 的一个实例),因此该 block 可以对其调用 my_own_puts 方法,并打印出“here”。

关于Ruby block 参数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2039415/

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