1
在腳本仍在運行的情況下,如何將輸出打印到REPL中?我注意到它將所有內容都存儲到緩衝區,然後在完成代碼後打印。在腳本仍在運行到REPL時進行Clojure打印
(defn -main
[x]
(when (pos? x)
(println x)
(Thread/sleep 10000)
(recur (dec x))))
(-main 10)
在腳本仍在運行的情況下,如何將輸出打印到REPL中?我注意到它將所有內容都存儲到緩衝區,然後在完成代碼後打印。在腳本仍在運行到REPL時進行Clojure打印
(defn -main
[x]
(when (pos? x)
(println x)
(Thread/sleep 10000)
(recur (dec x))))
(-main 10)
Java(&因此Clojure)使用緩衝輸出。如果你想在緊密循環的中間打印,您需要flush
:
(println x)
(flush)
感謝這是正確的,我以前使用過這個,但我試圖加載文件到REPL中,並沒有實時吐出輸出。 – Stixxxx
我認爲你需要['flush'(https://clojuredocs.org/clojure.core/flush) 。 –