2016-09-07 93 views
0

我寫的內容到edn文件,並希望行的最大寬度比當前的默認值時,如何增加行的最大長度限制與我目前正在獲得的輸出。但如何增加默認值?打印Clojure的數據

這是我使用的是寫出來的edn文件中的函數:

(defn pp-str [x] (-> x clojure.pprint/pprint with-out-str)) 

使用例:

(spit "foo.edn" (u/pp-str foo)) 

foo可能會有些打嗝,或其他Clojure的數據。

回答

1

嘗試重新綁定*print-right-margin*pp-str函數之外:

(binding [*print-right-margin* 1000] 
    (spit "foo.edn" (u/pp-str foo))) 

或從內:

(defn pp-str [x] 
    (binding [*print-right-margin* 1000] 
    (-> x clojure.pprint/pprint with-out-str)))) 

這將暫時重新定義爲包圍塊的範圍的值。這應該有幫助

1

請注意文檔*print-right-margin中它是'動態變量'。這意味着您可以使用binding暫時更改當前線程。

(binding [*print-right-margin* 42] (pprint my-great-data))

動態一般瓦爾按照*var*命名約定。其他例子是*out**err*