我知道可以用
创建一个方法class Klass
define_method foo
如何创建方法并将类作为参数传递?
def define_method_for klass, method
Ruby 2.2
编辑:使用案例:
我正在写一个模拟库。所以,我想模拟任意类和方法。
答案 0 :(得分:3)
我认为这就是你要找的东西:
def define_method_for( klass, method, my_proc )
klass.send( :define_method, method, my_proc )
end
以下是您将如何使用它:
class Klass
end
my_proc = proc { puts 'foo method called!' }
define_method_for( Klass, :foo, my_proc )
Klass.new.foo
#=> foo method called!
你也可以这样定义:
def define_method_for( klass, method, &block )
klass.send( :define_method, method, &block )
end
并像这样使用它:
class Klass
end
define_method_for( Klass, :foo ) do
puts 'foo method called!'
end
Klass.new.foo
#=> foo method called!
答案 1 :(得分:1)
您可以这样定义:
const char *
包装到方法中很简单。
答案 2 :(得分:1)
要么:
klass.class_eval{define_method(:foo){...}}
或:
klass.instance_eval{define_method(:foo){...}}