[英]Clojure print with values the same line as keys
如何漂亮地打印嵌套数据结构,以便:
目前,我得到了这个:
(clojure.pprint/pprint {:id1 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
:id2 "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"}))
在换行符上打印值“aaa...”和“bbb...”。
您也可以使用zprint ,它非常努力地将值保持在与键相同的行上。 如果一个值不适合与键位于同一行(即在当前“宽度”内),它将将该值(默认情况下缩进)放在下一行。 您可以更改行宽,还可以更改是否在必须这样做时将放在下一行的内容缩进。
zprint 有许多附加功能可以更有用地打印地图(特别是在 REPL 中)。 它将对键进行排序,您可以指定要首先输出的某些键。 您可以将某些键的颜色与其他键不同。 它具有一系列功能,旨在让人们可以更轻松地从 Clojure 地图中获取更多信息。
您可以将clojure.pprint/*print-right-margin*
为一个大数字,这样它就会尊重您的最长值。
(binding [clojure.pprint/*print-right-margin* 100]
(clojure.pprint/pprint {:id1 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
:id2 "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"}))
#=> {:id1 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
:id2 "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"}
或者做一些肮脏的举动并全局设置这个var
(alter-var-root #'clojure.pprint/*print-right-margin* (constantly 100))
(clojure.pprint/pprint {:id1 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
:id2 "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"})
#=> {:id1 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
:id2 "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.