我想使用
在ruby中定义一个方法 define_method
在另一个功能中。示例代码如下。
def demo(method_name)
variable = 5
define_method "#{method_name}" do
#stuff
end
end
在新定义的方法中,我希望能够访问变量:
variable=5
以前定义的。例如,我希望能够做到:
define_method "#{method_name}" do
return variable*variable
end
并获得变量平方。
我希望能够:
demo("squared")
x = squared # => 25
有没有办法可以传递变量"变量"进入define_method,即使它不在同一范围内?
答案 0 :(得分:4)
当然,你有什么工作。有什么问题?
[15] pry(main)> def demo(method_name)
[15] pry(main)* variable = 5
[15] pry(main)* define_method "#{method_name}" do
[15] pry(main)* variable * variable
[15] pry(main)* end
[15] pry(main)* end
=> :demo
[16] pry(main)> demo('squared')
=> :squared
[17] pry(main)> squared
=> 25