Antworten:
Ja. Aus benannten Features (Schwerpunkt Mine):
Ein Feature-Name ist ein Symbol, das für eine Sammlung von Funktionen, Variablen usw. steht. Die Datei, die sie definiert, sollte das Feature bereitstellen. Ein anderes Programm, das sie verwendet, kann sicherstellen, dass sie definiert sind, indem es die Funktion benötigt. Dadurch wird die Definitionsdatei geladen, sofern sie noch nicht geladen wurde.
Um das Vorhandensein eines Features zu erfordern, rufen Sie
requiremit dem Feature-Namen als Argument auf.requireDurchsucht die globale Variablefeatures, um festzustellen, ob das gewünschte Feature bereits bereitgestellt wurde. Wenn nicht, wird das Feature aus der entsprechenden Datei geladen . Diese Datei sollteprovideauf der obersten Ebene aufgerufen werden, um die Funktion hinzuzufügenfeatures. wenn es dies nicht tut,requiresignalisiert einen Fehler .
Ja, vorausgesetzt , dass der Code in helm.eloder helm.elcHinsicht der Regel , dass es nennen müssen (provide 'helm). Der Aufruf (provide 'helm)markiert das Symbol helmals geladenes Feature , und dies bewirkt, dass der zweite Aufruf (require 'helm)nichts tut.
Wenn das geladene Paket nicht aufgerufen providewird require, wird ein Fehler gemeldet, und die Funktion wird nicht als geladen markiert. Bei einem zweiten Aufruf (require 'helm)würde das Laden erneut versucht (und aus demselben Grund in der Regel erneut fehlschlagen).