请在2024年Clojure调查!中分享您的想法。

欢迎!请访问关于页面以获取更多关于如何使用本服务的信息。

+1
ClojureScript

重现

λ clj -Srepro -Sdeps '{:deps {org.clojure/clojurescript {:mvn/version "1.11.54"}}}}' -M -m cljs.main --repl-env node
ClojureScript 1.11.54
cljs.user=> (require '[clojure.pprint :refer [pprint *print-right-margin*]])
nil
cljs.user=> (prn (with-out-str (binding [*print-right-margin* 20] (pprint {:a 1 :b 2 :c 3 :d 4}))))
"{:a 1,\n :b 2, \n :c 3, \n :d 4}\n"
nil

注意在 :b 2:c 3 后新行前的空格。

糟糕 - 我看错了。完全同意。

1 个答案

0

我认为不是这样。注意,pprint 应该打印到标准输出(stdout),而你看到的额外空格实际上是使打印看起来更美观的缩进。

换行符后边的空格(即缩进)是将漂亮的输出格式化的关键。逗号与换行符之间的空格是多余的。

与Clojure比较

    λ clj -M -r
    Clojure 1.11.1
    user=> (require '[clojure.pprint :refer [pprint *print-right-margin*]])
    nil
    user=> (prn (with-out-str (binding [*print-right-margin* 20] (pprint {:a 1 :b 2 :c 3 :d 4}))))
    "{:a 1,\n :b 2,\n :c 3,\n :d 4}\n"
    nil
by
我的说法是正确的 :)
...