我碰到了有关保管箱的代码

时间:2019-03-05 05:05:43

标签: ruby

有人可以解释 def self.extended(base),这是什么意思或任何想法?

EDGELINE100 sday    sday2
   0.000000  171 29532.78
   2.210285  171 29532.78
   4.420569  171 29532.78
   6.630854  171 29532.78
   8.841139  171 29532.78
  11.051423  171 29532.78

1 个答案:

答案 0 :(得分:2)

扩展模块时,将调用self.extended方法。它允许在基础环境(扩展模块的环境)中执行方法。

您可以自己尝试一下,并通过简单的示例代码来理解。只需粘贴文件ruby文件并运行它即可。

self.extended的示例

module A
  def self.extended(base)
    puts "#{self} extended in #{base}"
  end 
end

class Apple
  extend A
end

# This should print: "A extended in Apple"

self.included的示例

module A
  def self.included(base)
    puts "#{self} included in #{base}"
  end 
end

class Apple
  include A
end

# This should print: "A included in Apple"

您可以在此处了解更多信息:http://juixe.com/techknow/index.php/2006/06/15/mixins-in-ruby/