Rob*_*ens 4 clojure lighttable
我正在尝试使用Clojure来运行我的Leiningen项目.尽管LightTable表示它已在连接窗格中连接,但除非我手动调用main函数,否则它不会执行.
project.clj:
(defproject lein-test "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.5.1"]]
:main lein-test.core)
Run Code Online (Sandbox Code Playgroud)
core.clj:
(ns lein-test.core)
(defn -main [& args]
(println "asdf"))
Run Code Online (Sandbox Code Playgroud)
当我与EVAL CTRL + SHIFT整个文件+进入,我看到nil通过ns在控制台并没有什么.如果我加
(-main)
Run Code Online (Sandbox Code Playgroud)
然后控制台显示'asdf'.lein run在命令提示符下产生预期的行为.我错过了什么?
Control + Shift + Enter评估命名空间.
评估命名空间不应该运行任何函数,除非您在顶层调用它们.在给定的代码库中,理想情况下应该只有一个在顶层调用的-main函数(通常是函数),并且应该通过在命名空间代码中调用它来设置它,而不是通过配置来调用它.
一切都在这里按预期工作.为了方便起见,您可以在注释块或文件的临时部分中调用(-main),或直接从repl接口调用它.