我只是想知道一些元编程。
实际上我需要在方法中创建一个方法,或者只是在一个块的根中创建一个方法。例如:
["method_a", "method_b"].each do |m|
Marshal.generate_a_method_called(m)
end
有人知道这是怎么回事吗?在哪里放置方法的作用?我的方法需要一个参数。
此致,
Joern。
答案 0 :(得分:3)
您可以使用define_method:
[:method_a, :method_b].each do |m|
define_method(m) do
# your method stuff
end
end
答案 1 :(得分:1)
我不明白你的例子。您是否也在为该方法生成源?
所以我将从书籍Perrotta: Metaprogramming Ruby
中的一个例子开始class MyClass
define_method :my_method do |my_arg|
my_arg * 3
end
end
obj = MyClass.new
obj.my_method(2) # => 6