Clojure sprintf?
有printf.它直接打印到标准输出。
sprintf 怎么样,它的格式与 printf 相同,但返回一个没有副作用的字符串?
There is printf. It prints directly to stdout.
How about sprintf, which formats the same way as printf, but returns a string with no side-effects?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在 Clojure 中,它称为 format 并驻留在 < code>clojure.core:
printf
相当于(comp print format)
。In Clojure it's called format and resides in
clojure.core
:printf
is equivalent to(comp print format)
.您应该查看
clojure.pprint
库中的cl-format
。它是 Common Lisp 的 FORMAT 函数的端口。它可以做 Java 的 printf 不能做的事情,比如条件、迭代 seq 等。要回答你的问题,使用 cl-format ,第一个参数 < code>nil 将返回一个字符串;第一个参数
true
将打印到 STDOUT。请注意,如果 Clojure 中尚不存在
format
,您还可以捕获 Clojure 的printf
的输出,如下所示:with-out-str
当库仅提供打印到 STDOUT 的函数并且您想要捕获输出时,这很有用。我遇到过执行此操作的 Java 库。You should check out
cl-format
, in theclojure.pprint
lib. It's a port of Common Lisp's FORMAT function. It can do things that Java'sprintf
can't do, like conditionals, iterating over seqs, etc.To answer your question, with
cl-format
, a first argument ofnil
will return a string; a first argument oftrue
will print to STDOUT.Note that if
format
didn't already exist in Clojure, you could also capture the output from Clojure'sprintf
like this:with-out-str
is helpful when a library only provides a function that prints to STDOUT and you want to capture the output instead. I've run across Java libraries that do this.考虑使用 with-out-str 宏:
或者只调用 java.lang.String 的 format 方法:
Consider using the with-out-str macro:
Or just call java.lang.String's format method: