module A
end
class Klass
include A
end
这如何影响Klass?它只是简单地将Klass放入模块A还是做更多的事情?
答案 0 :(得分:1)
include方法从另一个模块获取所有方法 将它们包含在当前模块中。这是语言层面的事情 而不是像require那样的文件级事物。包含方法 是与其他模块“扩展”类的主要方法(通常是 被称为混合)。例如,如果您的类定义了该方法 “each”,你可以包含mixin模块Enumerable,它可以充当 一个集合。这可能会令人困惑,因为非常使用包含动词 与其他语言不同。
从这里开始:What is the difference between include and require in Ruby?
另请参阅此页面:http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_modules.html它有关于如何包含作品的详细解释。
答案 1 :(得分:1)
简答:如果您的模块中有一些方法,并且在类中使用include
,则可以在类中使用这些方法。
Module A
def shout
puts "HEY THERE!!!!"
end
end
class Klass
include A
end
# Create instance of Klass
instance = Klass.new
# Produces "HEY THERE!!!!"
instance.shout
答案 2 :(得分:1)
include
是将模块的方法包含在另一个模块或类中的方法之一。
请阅读my article,了解它如何影响Ruby /
中的方法调用