module A
end
class Klass
include A
end
これには、クラスへの影響がどのように含まれますか?KlassをモジュールAに入れるだけですか、それとももっと何かをしますか?
module A
end
class Klass
include A
end
これには、クラスへの影響がどのように含まれますか?KlassをモジュールAに入れるだけですか、それとももっと何かをしますか?
includeメソッドは、別のモジュールからすべてのメソッドを取得し、それらを現在のモジュールにインクルードします。これは、requireのようなファイルレベルのものではなく、言語レベルのものです。includeメソッドは、他のモジュール(通常はミックスインと呼ばれます)でクラスを「拡張」するための主要な方法です。たとえば、クラスでメソッド「each」を定義している場合、ミックスインモジュールEnumerableを含めることができ、コレクションとして機能できます。include動詞は他の言語では非常に異なる方法で使用されるため、これは混乱を招く可能性があります。
ここから:Rubyのincludeとrequireの違いは何ですか?
このページもご覧ください:http : //www.ruby-doc.org/docs/ProgrammingRuby/html/tut_modules.htmlインクルードがどのように機能するかについての詳細な説明があります。
簡単な回答:モジュール内にいくつかのメソッドがあり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
include
モジュールのメソッドを別のモジュールまたはクラスに含める方法の1つです。
それがRuby/のメソッド呼び出しにどのように影響するかについての私の記事を読んでください