gpt4 book ai didi

ruby - class_eval 如何将参数传递给方法

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

在以下情况下如何传递参数名称..在传递给 class_eval 之前评估名称

 
class Foo

end

Foo.class_eval %Q{
def hello(name)
p "hello #{name}"
end
}

抱歉没有给出整个场景...我只是想动态地向类添加一个实例方法,并且该方法应该能够接受参数......上面的代码不会编译提示在 irb 中执行时名称未定义为局部变量..

谢谢

最佳答案

其他答案是“正确”答案,但您也可以跳过 p 内的插值调用:

Foo.class_eval %Q{
def hello(name)
p "hello \#{name}"
end
}

我以为你想更改实际参数名称(可能对完成或在动态方法上使用 Pry 时有用),这里假设它在全局中,但也可以传递到执行 class_eval 的方法中:

Foo.class_eval %Q{
def hello(#{$argname})
p "hello \#{$argname}"
end
}

关于ruby - class_eval 如何将参数传递给方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7943114/

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