什么是Ruby中的方法类对象?它有什么作用 ?为什么它无法实例化?

时间:2011-12-06 10:13:24

标签: ruby class lambda block

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

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

1 个答案:

答案 0 :(得分:0)

Method是您可以从Module中提取的所有方法的类。如果要动态定义方法,请使用define_method,因为无法定义未绑定的方法(即使有UnboundMethod。您要查找的是Proc.new来定义匿名方法。如果要绑定该方法,可以使用define_method(:method_name, &proc_you_defined)