327 votes

Quelle est la différence entre require_relative et require en Ruby ?

Quelle est la différence entre require_relative y require en Ruby ?

9 votes

Avant la version 1.9.2, il n'y avait pas besoin de require_relative, car le répertoire courant de script était dans $: . Voir stackoverflow.com/questions/2900370

1 votes

Require_relative requiert un fichier spécifiquement pointé par rapport au fichier qui l'appelle. require requiert un fichier inclus dans le $LOAD_PATH.

16voto

mech Points 188

Je viens de voir que le code de RSpec a un commentaire sur require_relative étant une constante O(1) et require étant O(N) linéaire. La différence est donc probablement que require_relative est préférable à require .

1 votes

Intéressant. J'ai atterri ici en cherchant des informations sur une comparaison de vitesse. Je pensais que require_relative était plus rapide car le chargeur n'avait pas à parcourir le chemin de chargement à la recherche du fichier. Essentiellement, require_relative fournit un lien direct.

0 votes

Les premières discussions sur Vitesse relative requise et la RSpec journal des modifications .

1voto

peter Points 15430

Je tiens à ajouter que sous Windows, vous pouvez utiliser require './1.rb' si le script est exécuté localement ou à partir d'un lecteur réseau mappé, mais lorsqu'il est exécuté à partir d'un lecteur réseau UNC. \\servername\sharename\folder vous devez utiliser require_relative './1.rb' .

Je ne me mêle pas de la discussion sur le choix de l'utilisation pour d'autres raisons.

-4voto

Chemin absolu

require './app/example_file.rb'

nom abrégé

require_relative 'example_file'

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