Zugriff auf Variablen von eingeschlossenen Dateien in Ruby

8

Wie greifen Sie auf Variablen zu, die in einer enthaltenen Datei definiert sind?

%Vor%     
nickf 18.05.2010, 01:15
quelle

3 Antworten

15

Sie können nicht auf eine lokale Stelle außerhalb des Bereichs zugreifen, in dem sie definiert wurde - in diesem Fall die Datei. Wenn Sie Variablen verwenden möchten, die Dateigrenzen überschreiten, machen Sie sie zu etwas anderem als Einheimischen. $foo , Foo und @foo funktionieren alle.

Wenn Sie dem Symbol wirklich keine Dekoration geben wollen (weil Sie die Art und Weise, wie es liest, vielleicht nicht mögen), besteht ein üblicher Hack darin, es nur als Methode zu definieren: def foo() "bar" end .

    
Chuck 18.05.2010, 01:20
quelle
6

Ich habe Chucks Antwort akzeptiert, weil es eine vernünftige Lösung ist, aber ich habe tatsächlich eine andere Methode benutzt, von der ich dachte, dass ich sie teilen würde. Es ist unglaublich hacky, aber war nützlich für meine Zwecke. Ich musste ein Verzeichnis mit Hunderten von Dateien durchsuchen, von denen jede ein Objekt mit dem gleichen Namen erstellte, und dann einige Informationen über jedes Objekt ausgeben. Für ernsthafte und nicht temporäre Zwecke würde ich dies nicht empfehlen!

%Vor%     
nickf 18.05.2010 02:08
quelle
1

Normalerweise definiere ich sie nur als Methoden. Ähnlich wie das, was Nickf gesagt hat.

Datei1:

%Vor%

Datei2:

%Vor%

Fügen Sie dann einfach a:

hinzu

require_relative 'file path/file name' oder require_relative 'file name' & lt; = wenn Dateien in demselben Verzeichnis liegen.

zu der Datei, in der die Methode / Variable verwendet werden soll.

    
Alex Lorsung 01.04.2017 14:39
quelle

Tags und Links