你应该cl-format在clojure.pprintlib中查看.它是Common Lisp的FORMAT函数的一个端口.它可以做Java printf不能做的事情,比如条件,迭代seqs等.
要回答你的问题,cl-format第一个参数nil将返回一个字符串; true将打印到STDOUT 的第一个参数.
user> (cl-format nil "~{~R~^, ~}" [1 2 3 4])
"one, two, three, four"
Run Code Online (Sandbox Code Playgroud)
请注意,如果format在Clojure中不存在,您还可以捕获Clojure的输出,printf如下所示:
user> (with-out-str (printf "%s" :foo))
":foo"
Run Code Online (Sandbox Code Playgroud)
with-out-str当库仅提供打印到STDOUT的函数并且您想要捕获输出时,它很有用.我遇到过这样做的Java库.
考虑使用with-out-str宏:
(with-out-str
(print x))
Run Code Online (Sandbox Code Playgroud)
或者只是调用java.lang.String的格式方法:
(String/format "%d" 3)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2596 次 |
| 最近记录: |