【问题标题】:What is Method Class Object in Ruby ? What does it do ? Why it cannot be instantiated?什么是 Ruby 中的方法类对象?它有什么作用 ?为什么不能实例化?
【发布时间】:2011-12-06 10:13:24
【问题描述】:
通过执行以下代码,它返回'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
【问题讨论】:
标签:
ruby
class
lambda
block
【解决方案1】:
Method 是您可以从Module 中提取的所有方法的类。如果你想动态定义方法,使用define_method,因为方法不能被定义为unbound(即使有UnboundMethod。你要找的是Proc.new来定义一个匿名方法。如果你想绑定那个方法,你可以使用define_method(:method_name, &proc_you_defined)。