2010-12-10 54 views
2

J'ai défini une fonction -main dans un espace de noms :gen-class :main true dans Clojure. J'essaie de le tester à partir du REPL.Test de Clojure main à partir de REPL

Ma fonction main ressemble à ceci:

(defn -main [& args] 
    ; ... 
) 

et je suis en train de l'appeler avec (ns/-main "-x" "foo"), (ns/-main "-x foo"), (ns/-main ["-x" "foo"]), (ns/-main (into-array String ["-x" "foo"]), etc., et tout me donner diverses erreurs.

Comment appeler cette fonction à partir de REPL et passer certains arguments de ligne de commande pour le tester?

Merci.

Répondre

5

J'ai essayé de le reproduire:

(defn -main [& args] 
    (apply str args) 
) 

alors appelé comme:

(-main "a" "b" "c") 

Et évalué à:

"abc" 

Comme il se doit ..

Be Assurez-vous de vérifier êtes-vous usi ng l'identifiant d'espace de noms droit, voir aussi si quelque chose de bizarre se passe à l'intérieur de votre fonction -main, comme l'utilisation d'une chaîne en nombre ..

En outre, il ne serait pas mal de voir votre message d'erreur sur ce ..

+1

Le problème était un DUE (erreur d'utilisateur stupide). Ça marche maintenant. Merci. – Ralph

+1

@Ralf: Été là ... fait que .. :) –