【发布时间】:2011-11-10 05:12:50
【问题描述】:
我有一个 ruby 程序,我想接受用户的组合方法,并用该名称创建一个新方法。我试过这个:
def method_missing(meth,*args,&block)
name = meth.to_s
class << self
define_method(name) do
puts "hello " + name
end
end
end
我收到以下错误:
`define_method': interning empty string (ArgumentError) in 'method_missing'
有什么想法吗?谢谢。
编辑:
我让它以不同的方式工作,但我仍然很好奇如何以这种方式做到这一点。这是我的代码:
def method_missing(meth,*args,&block)
Adder.class_eval do
define_method(meth) do
puts "hello " + meth
end
end
send("#{meth}")
end
【问题讨论】:
标签: ruby closures metaprogramming