什么“扩展自我”在Ruby中意味着什么?

时间:2015-12-13 06:37:23

标签: ruby

我在模块定义中看到一些使用extend self的ruby模块。 extend self在这里意味着什么?

2 个答案:

答案 0 :(得分:2)

在该上下文中,extend self将使所有实例方法可用作类方法。例如,在此模块中:

module A
  def k
  end
  extend self
end

你可以做A.k。这也是正确的:A.instance_methods #=> [:k]; A.methods.include? :k #=> true请查看Ruby: extend self以获取更多信息。

答案 1 :(得分:1)

这意味着将其实例方法定义为其类/模块方法。