我正在查看一个模块 X,它包含两个名为“InstanceMethods
”和“ClassMethods
”的模块。
模块 X 中的最后一个定义是这样的:
def self.included(base)
base.send :include, InstanceMethods
base.send :extend, ClassMethods
end
这是做什么的?
最佳答案
included
在一个模块被包含到另一个模块或类中时被调用。在这种情况下,它将尝试调用 base
的 include
方法来从 InstanceMethods
中获取模块方法、变量和常量添加到 base
然后将尝试调用 base
的 extend
方法来从 ClassMethods
中获取实例方法添加到 base
。
也可以是
def self.included( base )
base.include( InstanceMethods )
base.extend( ClassMethods )
end
关于ruby - "base.send :include, InstanceMethods"---> 这是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/973650/