私は ruby on rails 開発者であり、rails application の環境で使用される Require と load の間で多くのことを混乱させました。これら 2 つの機能が正確に何をするか。
2 に答える
これら 2 つのステートメントについて簡単に説明したいと思います。これら 2 つは Rails の関数ではありません。Rails は、以前にロードされたときにファイルをキャッシュするためにキャッシュを使用します。cache true を取得すると、 require が使用されます。それ以外の場合は、 load ステートメントを使用して、キャッシュに独立してロードされます。
require は、すでにロードされているファイルをキャッシュするために使用され、ロードは常にサーバーにヒットしてファイルをロードすると言いたいだけです。
load
とはどちらもrequire
、指定されたクラスが Ruby コンテキストに確実にロードされるようにするという点で非常に似ています。
ロード
主な違いは、load
すでにロードされている場合でも、呼び出すたびにクラスをロードすることです。これには、特に単体テストのユースケースがいくつかあります。
必要とする
対照的に、require
クラスがロードされていることを確認するだけです。すでにロードされている場合は、何もしません。まだロードされていない場合は、すぐにロードされます。
もう 1 つの小さな違いは、 の場合load
はファイル名.rb
拡張子を指定する必要があるのに対しrequire
、 の場合は拡張子を指定する必要がないことです.rb
。