我已经在clojure内部进行了一些编码。
(defn -main
"dequeue function"
[& args]
我正在加载此CLJ文件:
(load-file "src/exercise/core.clj")
,然后我试图学习如何在reple中调用此功能以开发core_test.clj(如果有关于如何开发此自动测试的提示,请给我一些提示(。我现在要做的是:
(-main "resources\sample-input.json" "a")
但这是打印" 参数0 ",这是我告诉代码打印的消息,只是为了查看使用
传递了多少个参数(println "Arguments" (count *command-line-args*))
我是如何做到这一点的?谢谢!
我正在尝试学习如何在repl中调用它,以开发core_test.clj
通常,您会编写其他从-main
调用并测试这些功能而不是应用程序的入口点-main
。
但是您应该能够像任何其他功能一样呼叫-main
。我有一个src/sandbox/main.clj
文件:
(ns sandbox.main)
(defn -main [& args]
(prn args))
在项目文件夹中启动一个重复,我可以这样调用-main
:
(use 'sandbox.main) ;; (load-file "src/sandbox/main.clj") also works
=> nil
(in-ns 'sandbox.main)
=> #object[clojure.lang.Namespace 0x67ccce04 "sandbox.main"]
(-main "some" "args")
;; ("some" "args")
=> nil
我的示例中有一个关键区别:它是打印-main
的args
绑定;*command-line-args*
是零,因为您没有从命令行中运行代码。
无论如何,使用现有库直接使用CLI ARG而不是*command-line-args*
是一个更好的主意。