我如何漂亮地打印嵌套的数据结构,例如:
此刻,我明白了:
(clojure.pprint/pprint {:id1 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
:id2 "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"}))
在换行符上打印值“ aaa ...”和“ bbb ...”。
答案 0 :(得分:1)
您还可以使用zprint,它非常努力地将值与键保持在同一行上。如果某个值与键不在同一行(即在当前的“宽度”之内),它将把该值(默认为缩进)放在下一行。您可以更改线宽,还可以更改是否必须缩进放置在下一行的内容。
zprint具有许多附加功能,可更有效地打印地图(尤其是在REPL上)。它将对键进行排序,您可以指定要首先输出的某些键。您可以为某些按键涂上与其他按键不同的颜色。它具有许多功能,旨在使人们可以更轻松地从Clojure映射中获取更多信息。
答案 1 :(得分:-1)
您可以将clojure.pprint/*print-right-margin*
设置为一个较大的数字,这样它将尊重您的最长价值。
(binding [clojure.pprint/*print-right-margin* 100]
(clojure.pprint/pprint {:id1 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
:id2 "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"}))
#=> {:id1 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
:id2 "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"}
或做一些肮脏的举动,并在全局范围内设置此变量
(alter-var-root #'clojure.pprint/*print-right-margin* (constantly 100))
(clojure.pprint/pprint {:id1 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
:id2 "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"})
#=> {:id1 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
:id2 "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"}