Computerwissenschaften

Die „Require“ -Methode in Ruby

Die „Require“ -Methode in Ruby

Um wiederverwendbare Komponenten zu erstellen, die problemlos in anderen Programmen verwendet werden können, muss eine Programmiersprache über eine Möglichkeit verfügen, diesen Code zur Laufzeit reibungslos zu importieren. In Ruby wird die require- Methode verwendet, um eine andere Datei zu laden und alle ihre Anweisungen auszuführen . Dies dient zum Importieren aller Klassen- und Methodendefinitionen in die Datei. Die Methode require führt nicht nur die einfache Ausführung aller Anweisungen in der Datei aus, sondern verfolgt auch, welche Dateien zuvor benötigt wurden, und erfordert daher keine zweimalige Datei.

 

Verwenden der ‚require‘-Methode

Die Methode require verwendet den Namen der Datei, die als Zeichenfolge benötigt wird. als einzelnes Argument. Dies kann entweder ein Pfad zur Datei sein, z. B. ./lib/some_library.rb, oder ein verkürzter Name, z. B. some_library . Wenn das Argument ein Pfad und ein vollständiger Dateiname ist, sucht die require-Methode dort nach der Datei. Wenn das Argument jedoch ein verkürzter Name ist, durchsucht die Methode require eine Reihe vordefinierter Verzeichnisse auf Ihrem System nach dieser Datei. Die Verwendung des verkürzten Namens ist die häufigste Methode zur Verwendung der Methode require.

Das folgende Beispiel zeigt, wie die require-Anweisung verwendet wird. Die Datei test_library.rb befindet sich im ersten Codeblock. Diese Datei druckt eine Nachricht und definiert eine neue Klasse. Der zweite Codeblock ist die Datei test_program.rb . Diese Datei lädt die Datei test_library.rb mit der Methode require und erstellt ein neues TestClass- Objekt.

setzt „test_library include“
-Klasse TestClass
def initialize
setzt „TestClass object created“
end
end

#! / usr / bin / env ruby
erfordern ‚test_library.rb‘
t=TestClass.new

 

Vermeiden Sie Namenskonflikte

Wenn Sie wiederverwendbare Komponenten schreiben, ist es am besten, nicht viele Variablen im globalen Bereich außerhalb von Klassen oder Methoden oder mit dem Präfix $ zu deklarieren . Dies soll eine sogenannte “ Namespace-Verschmutzung. verhindern . Wenn Sie zu viele Namen deklarieren, deklariert ein anderes Programm oder eine andere Bibliothek möglicherweise denselben Namen und führt zu einem Namenskonflikt. Wenn zwei völlig unabhängige Bibliotheken versehentlich anfangen, die Variablen des anderen zu ändern, werden die Dinge kaputt gehen – scheinbar zufällig. Dies ist ein sehr schwer zu findender Fehler, und es ist am besten, ihn zu vermeiden.

Um Namenskonflikte zu vermeiden, können Sie alles in Ihrer Bibliothek in eine Modulanweisung einschließen . Dies erfordert, dass Benutzer mit einem vollständig qualifizierten Namen wie MyLibrary :: my_method auf Ihre Klassen und Methoden verweisen. Dies lohnt sich jedoch, da Namenskonflikte im Allgemeinen nicht auftreten. Personen, die alle Klassen- und Methodennamen im globalen Bereich haben möchten, können dies mithilfe der include- Anweisung tun .

Das folgende Beispiel wiederholt das vorherige Beispiel, enthält jedoch alles in einem MyLibrary- Modul. Es werden zwei Versionen von my_program.rb angegeben. eine, die die include- Anweisung verwendet, und eine, die dies nicht tut.

setzt „test_library include“
-Modul MyLibrary-
Klasse TestClass
def initialize
setzt „TestClass-Objekt erstellt“
Ende
Ende
Ende

#! / usr / bin / env ruby
erfordert ‚test_library2.rb‘
t=MyLibrary :: TestClass.new

#! / usr / bin / env ruby
erfordern ‚test_library2.rb‘
include MyLibrary
t=TestClass.new

 

Vermeiden Sie absolute Pfade

Da wiederverwendbare Komponenten häufig verschoben werden, ist es auch am besten, bei Ihren erforderlichen Aufrufen keine absoluten Pfade zu verwenden. Ein absoluter Pfad ist ein Pfad wie /home/user/code/library.rb . Sie werden feststellen, dass sich die Datei genau an diesem Speicherort befinden muss, damit sie funktioniert. Wenn das Skript jemals verschoben wird oder sich Ihr Home-Verzeichnis ändert, funktioniert diese erfordernde Anweisung nicht mehr.

Anstelle von absoluten Pfaden wird häufig ein ./lib-Verzeichnis im Verzeichnis Ihres Ruby-Programms erstellt. Das ./lib Verzeichnis wird den hinzugefügt $ LOAD_PATH Variable , die die Verzeichnisse speichern , in dem die Methode sucht für Ruby – Dateien benötigen. Wenn danach die Datei my_library.rb im lib-Verzeichnis gespeichert ist, kann sie mit einer einfachen Anforderung ‚my_library‘ in Ihr Programm geladen werden .

Das folgende Beispiel entspricht den vorherigen Beispielen für test_program.rb . Es wird jedoch davon ausgegangen, dass die Datei test_library.rb im Verzeichnis ./lib gespeichert ist, und sie wird mit der oben beschriebenen Methode geladen .

#! / usr / bin / env ruby
$ LOAD_PATH << ‚./lib‘
erfordert ‚test_library.rb‘
t=TestClass.new

Similar Posts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.