Ruby关于extend self 的疑问?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (18)

在Ruby中,我理解extend,但是,具体来说,extend做的是什么?这仅仅是将实例方法变成类方法的一种方便的方法吗?为什么要这样做,而不是从一开始就指定类方法?

module Rake
  include Test::Unit::Assertions

  def run_tests # etc.
  end

  # what does the next line do?
  extend self
end
提问于
用户回答回答于

它是一种将实例方法变成类方法的方便方式。

用户回答回答于

在模块中,Self是模块类本身。所以举个例子

puts self

会返回Rake

extend self

基本上,它可以使用Rake中定义的实例方法,因此可以这样做。

Rake.run_tests

扫码关注云+社区