从REPL测试Clojure main

Ral*_*lph 2 program-entry-point clojure read-eval-print-loop

我在Clojure -main中的:gen-class :main true命名空间中定义了一个函数.我试图从REPL测试它.

我的main功能看起来像这样:

(defn -main [& args]
  ; ...
  )
Run Code Online (Sandbox Code Playgroud)

我试图与调用它(ns/-main "-x" "foo"),(ns/-main "-x foo"),(ns/-main ["-x" "foo"]),(ns/-main (into-array String ["-x" "foo"]),等,以及所有给我的各种错误.

如何从REPL调用此函数并传入一些命令行参数来测试它?

谢谢.

Gor*_*vic 6

我试图重现它:

(defn -main [& args]
  (apply str args)
  )
Run Code Online (Sandbox Code Playgroud)

然后调用如:

(-main "a" "b" "c")
Run Code Online (Sandbox Code Playgroud)

它评估为:

"abc"
Run Code Online (Sandbox Code Playgroud)

正如它应该..

请务必检查您是否使用了正确的命名空间标识符,还要查看-main函数内部是否发生任何奇怪的事情,例如将字符串用作数字.

此外,在此处看到您的错误消息也没有什么坏处.