2017-03-13 10 views
-3

以下のプログラムの動作は同じです。実際にrequireは何をしていますか?
どちらの場合も、my_extension.rbで定義されているメソッドを使用できます。しかし、それはルビーでは良いですか?"require"メソッドを使用するためにどのコンテキストをコーディングする必要がありますか

case1:クラス内でrequreを使用してください。

class Foo 
    require "my_extension" 
end 

case2:トップレベルでrequireを使用してください。

require "my_extension" 

class Foo 
end 

答えて

1

ケース2は、正当なエチケットであり、他のプログラムがコードの依存関係を見つけるのが容易であるため、純粋に優れています。

技術的には、requireは、どこでも同じことを行います。ファイル内のコードを実行するだけです。プレースメントの唯一の違いは、requireが(実際に呼び出された場合)実際に呼び出されたときです。たとえば:my_methodが呼び出されるまで、この場合

def my_method 
    require "my_extension" 
end 

my_extension.rbはロードされません。

関連する問題