同じシンボルのべき等で複数回requireを使用していますか?


11

あるrequire冪等は?すなわち

(require 'helm)

そして

(require 'helm)
(require 'helm)

同じ結果で終わりますか?

回答:


14

はい。名前付き機能から(強調鉱山):

機能名は、関数、変数などのコレクションを表す記号です。それらを定義するファイルは、機能を提供する必要があります。それらを使用する別のプログラムは、機能を要求することで確実に定義される場合があります。これは、定義のファイルがまだロードされていない場合にロードします。

機能の存在を要求するにはrequire、機能名を引数として呼び出します。requireグローバル変数featuresを調べて、目的の機能が既に提供されているかどうかを確認します。そうでない場合は、適切なファイルから機能をロードします。このファイルprovide、機能を追加するためにfeaturesトップレベルで呼び出す必要があります失敗しrequire場合は、エラーを通知します


ドキュメントを引用するために受け入れられました。
PythonNut

Gillesの回答からの情報をここに組み込んでください。または、@ Gilles、この答えをあなたのものに入れることもうまくいくでしょう。
-daveloyall

13

はい、コードが呼び出す必要があるルールのコードhelm.elまたはhelm.elcルールを尊重している場合(provide 'helm)。呼び出し(provide 'helm)は、シンボルhelmロードされた機能としてマークし、これにより、2番目の呼び出し(require 'helm)は何もしません。

呼び出さないロードされたパッケージにした場合provide、その後は、requireエラーを通知し、ロードされたように、第2の呼び出しがするような特徴は、マークされていない(require 'helm)(同じ理由で、再び、通常は失敗)を再度読み込みを試みます。


+1追加情報をありがとう。ドキュメントを読んだ後の混乱を解決しました。
PythonNut
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.