0
module A
end 

class Klass
  include A
end

这包括如何影响 Klass?它是简单地将 Klass 放入模块 A 中还是做更多的事情?

4

3 回答 3

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
于 2013-03-24T23:38:07.050 回答
1

include是将模块的方法包含在另一个模块或类中的方法之一。

请阅读关于它如何影响 Ruby 中的方法调用的文章/

于 2013-03-25T00:08:29.607 回答
1

include 方法从另一个模块中获取所有方法,并将它们包含到当前模块中。这是一个语言级别的东西,而不是文件级别的东西,就像 require 一样。include 方法是使用其他模块“扩展”类的主要方法(通常称为 mix-ins)。例如,如果你的类定义了方法“each”,你可以包含 mixin 模块 Enumerable 并且它可以作为一个集合。这可能会令人困惑,因为包含动词在其他语言中的使用方式非常不同。

从这里:Ruby中的include和require有什么区别?

也看看这个页面:http ://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_modules.html它有一个关于包含如何工作的详细解释。

于 2013-03-24T23:35:35.827 回答