有人可以解释 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
答案 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/