【问题标题】: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)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-12
      • 1970-01-01
      • 2022-01-25
      • 2013-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-20
      相关资源
      最近更新 更多