我有一些我需要从Clojure程序中捕获的printlns,我想知道如何捕获输出?
我试过了:
(binding [a *out*]
(println "h")
a
)
Run Code Online (Sandbox Code Playgroud)
:但这不起作用
Mic*_*are 36
(with-out-str (println "this should return as a string"))
Run Code Online (Sandbox Code Playgroud)
只是为了扩展Michiel的答案,当您想要将输出捕获到可以with-out-str与之结合的文件时spit.
如果你不想在写出之前在内存中建立一个巨大的字符串,那么你可以with-out-writer从clojure.contrib.io库中使用它.
with-out-writer是一个宏,它可以很好地封装文件资源的正确打开和关闭,以及在该文件中*out*执行代码时对该文件的编写器的绑定.