0
module A
end 

class Klass
  include A
end

これには、クラスへの影響がどのように含まれますか?KlassをモジュールAに入れるだけですか、それとももっと何かをしますか?

4

3 に答える 3

1

includeメソッドは、別のモジュールからすべてのメソッドを取得し、それらを現在のモジュールにインクルードします。これは、requireのようなファイルレベルのものではなく、言語レベルのものです。includeメソッドは、他のモジュール(通常はミックスインと呼ばれます)でクラスを「拡張」するための主要な方法です。たとえば、クラスでメソッド「each」を定義している場合、ミックスインモジュールEnumerableを含めることができ、コレクションとして機能できます。include動詞は他の言語では非常に異なる方法で使用されるため、これは混乱を招く可能性があります。

ここから:Rubyのincludeとrequireの違いは何ですか?

このページもご覧ください:http : //www.ruby-doc.org/docs/ProgrammingRuby/html/tut_modules.htmlインクルードがどのように機能するかについての詳細な説明があります。

于 2013-03-24T23:35:35.827 に答える
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モジュールのメソッドを別のモジュールまたはクラスに含める方法の1つです。

それがRuby/のメソッド呼び出しにどのように影響するかについての私の記事を読んでください

于 2013-03-25T00:08:29.607 に答える