在Clojure中,如何打印矢量的内容?(我想到了控制台,通常用于调试目的).如果答案可以推广到任何好的Seq.
编辑: 我应该补充一点,它应该是一个简单的函数,它提供看起来合理的输出,因此每行打印一个项目 - 因此可以很容易地用于调试目的.我确信有些库可以做到这一点,但使用库确实看起来有点过分.
我经常使用println.您可能还想尝试其他几种打印功能.请参阅Clojure备忘单的"IO"部分.
这不是Java.只需打印它,它看起来不错.
您也可以使用clojure.pprint/pprint漂亮的打印方式.这对于大型复杂的数据结构很有帮助.
这些方法适用于所有基本的Clojure数据结构.
例外:(range)由于显而易见的原因,不要打印无限长的懒惰结构,例如返回的结构.为此,您可能需要编写特殊代码.
这对我有用:
(defn pr-seq
([seq msg]
(letfn [(lineify-seq [items]
(apply str (interpose "\n" items)))]
(println (str "\n--------start--------\n"
msg "\nCOUNT: " (count seq) "\n"
(lineify-seq seq) "\n---------end---------"))))
([seq]
(pr-seq seq nil)))
Run Code Online (Sandbox Code Playgroud)
用法示例:
(pr-seq [1 2 3])
(pr-seq (take 20 blobs) (str "First 20 of " (count blobs) " Blobs")))
Run Code Online (Sandbox Code Playgroud)