Ich habe den folgenden Coderesolve verhält sich anders in REPL und -main
(ns clojure-noob.core
(:gen-class))
(defn -main [& args]
(defn A [x] (str x "a"))
(println (A ".")) ; .a
(println A) ; some object
(println (symbol "A")) ; just A
(println (resolve(symbol "A"))) ; nil
(println ((resolve(symbol "A")) ".")) ; nullpointer exception
)
Wenn ich die Zeilen (beginnend mit (defn A ...
) eins nach dem anderen in repl eingeben, verhalten sie sich wie erwartet. Die letzte
(println ((resolve(symbol "A")) "."))
ruft A auf "." d. h. fügt den Buchstaben a hinzu. Aber die ganze Sache mit lein run
in Leiningen aufgerufen gibt nil
auf der vorletzten und eine Null-Zeiger-Ausnahme in der letzten Zeile, d. H. resolve
löst nicht wie erwartet.
Was mache ich falsch? Was ist der Unterschied zwischen lein repl
und lein run
?
Vielen Dank! Es funktioniert jetzt. – Rat62
@ Rat62 Davon beantwortet Ihre Frage, sollten Sie es als die akzeptierte Antwort m markieren – Carcigenicate