2010-05-08 9 views
9

Ich versuche, ein Ruby-Skript in eine Datei zu schreiben.Forward-Deklaration in Ruby

Ich würde gerne wissen, ob es möglich ist, die "main" -Funktion am Anfang zu schreiben, mit den anderen Funktionen, die von main verwendet werden, danach definiert. Mit anderen Worten, ich möchte eine noch nicht definierte Funktion aufrufen, so dass sie nicht von der Definitionsreihenfolge abhängt. Es ist nicht möglich, die Reihenfolge zu ändern, da dies zu einem "undefined method" -Fehler führt. In C/C++ verwenden wir Vorwärtsdeklarationen ... gibt es etwas Ähnliches in Ruby oder eine andere Lösung?

Antwort

17

Sie müssen nur die Funktionen, die Sie aufrufen, definieren, wenn Ihre main-Funktion ausgeführt wird und nicht, wenn sie definiert ist. Die einfachste Lösung besteht also darin, die main-Funktion am Anfang des Skripts zu schreiben, sie aber am Ende aufzurufen.

def main 
    foo(42) 
    bar(24) 
end 

# definitions of foo and bar 

main