Clojure 将 var 嵌入到 String,另一种方式?就像冲刺的方式


 (str "I don't know what " (:name a) " eats."))

我知道这是用变量构造字符串的正确方法。但是有没有类似的方法呢?

(str "I dont know what %s eats." (:name a))

我试过了,这不是有效的语法,但是在 Clojure 中有类似的方法吗?

谢谢。

迭戈·巴什提到了format,这是一个很好的答案。 您还可以使用cl-format

(clojure.pprint/cl-format nil "I don't know what ~a eats." "Joe")

使用 nil 作为第二个参数,这将返回一个字符串。 第二个参数的其他选项将导致字符串写入某处。

format使用java.lang.String.format . cl-format是Common Lisp的format的Clojure版本。 对于格式化字符串,它们的功能非常相似,但是有一些事情cl-format可以做得很好,而 Clojure 的format则没有。 简单示例--打印nil

(format "I don't know what %s eats." nil)
;=> "I don't know what null eats."
(clojure.pprint/cl-format nil "I don't know what ~a eats." nil)
;=> "I don't know what nil eats."

format就是你想要的。例如:

(format "I don't know what %s eats." "Joe")

=> "I don't know what Joe eats."

最新更新