2011-12-06 63 views
0

通过执行下面的代码,它返回指示Method类对象的'Method'是什么?它有什么作用 ?为什么它不能被实例化?它没有新的。 另外我们如何添加一个new方法作为Method类对象的构造函数?什么是Ruby中的方法类对象?它有什么作用 ?为什么它不能被实例化?

proc_obj = -> {puts "Hello Lambda"} 

def pass_lambda proc 
    puts "Begin" 
    proc.yield 
    puts "End" 
end 

pass_lambda proc_obj 

puts proc_obj.method(:call).class 

回答

0

Method是一流的,你可以从一个Module提取的所有方法。如果您想要动态定义方法,请使用define_method,因为方法无法定义为解绑定(即使有UnboundMethod。您正在寻找的是Proc.new来定义一个匿名方法,如果要绑定该方法,您可以使用define_method(:method_name, &proc_you_defined)

相关问题