我正在Clojure写一个文本游戏.我希望玩家在控制台上输入线条,并让游戏逐行响应.
研究表明,这(read-line)是一种在Clojure中从标准输入中获取文本行的方式,但它对我不起作用.
我在一个新的Leiningen项目中,我已经添加了一个指向唯一源文件的:main子句project.clj:
(ns textgame.core)
(defn -main [& args]
(println "Entering -main")
; (flush) ;makes no difference if flush are commented out
(let [input (read-line)]
(println "ECHO:" input))
; (flush)
(println "Exiting -main"))
Run Code Online (Sandbox Code Playgroud)
使用lein run产量:
Entering -main
ECHO: nil
Exiting -main
Run Code Online (Sandbox Code Playgroud)
换句话说,没有机会在控制台输入文本(read-line)进行阅读.
我应该如何让Clojure等待输入字符和换行符并返回相应的字符串?
(我在Linux Mint 11上使用GNOME Terminal 2.32.1,在Java 1.6.0_26 Java HotSpot(TM)64位服务器VM上使用Leiningen 1.6.1.1,Clojure 1.2.1版.)
更新:如果我跑lein repl,我可以(println (read-line)),但不是当我有一个-main功能并运行使用lein run.