82 votes

En quoi la charge diffère-t-elle de require dans Ruby?

Existe-t-il une différence majeure entre load et require dans les applications Ruby on Rails? Ou ont-ils tous les deux la même fonctionnalité?

99voto

Nikolaus Gradwohl Points 8296

require recherche la bibliothèque dans tous les chemins de recherche définis et ajoute également .rb ou .so au nom de fichier que vous entrez. Il s'assure également qu'une bibliothèque n'est incluse qu'une seule fois. Donc, si votre application nécessite les bibliothèques A et B et que la bibliothèque B nécessite que la bibliothèque A ne soit également chargée.

Avec load vous devez ajouter le nom complet de la bibliothèque. Elle est chargée chaque fois que vous appelez load - même si elle est déjà en mémoire.

40voto

Jörg W Mittag Points 153275

Une autre différence entre Kernel#require et Kernel#load est que Kernel#load prend un second argument facultatif qui vous permet d’envelopper le code chargé dans un module vide anonyme.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X