Il y a Printf. Il imprime directement sur stdout. P>
Que diriez-vous de Sprintf, qui format de la même manière que Printf, mais renvoie une chaîne sans effets secondaires? P>
3 Réponses :
in Clojure, il s'appelle format et réside dans clojure.core code>: printf code> est équivalent à (format d'impression de compression) code>. P>
Vous devez vérifier Pour répondre à votre question, avec Notez que si cl-format code>, dans le clojure.proprint code> lib. C'est un port de Format fonction. Il peut faire des choses que Java's code> printf code> ne peut pas faire, comme des conditionnels, itération de SEQS, etc. cl-format code>, un premier argument de nil code> retournera une chaîne; Un premier argument de true code> imprimera sur stdout. p> format code> n'a pas déjà existé dans le clojure , vous pouvez également capturer la sortie de printf code> comme ceci: p> with-out-str code> est utile quand Une bibliothèque fournit uniquement une fonction imprime sur STDOUT et vous souhaitez capturer la sortie. Je rencontre des bibliothèques Java qui font cela. P> p>
Ces Java Libs n'écriront pas à Clojure * out *, seront-ils? Vous auriez besoin de détourner le système / la configuration avec un imprimeur qui utilise le var.
envisagez d'utiliser la macro avec STR-STR:
(String/format "%d" 3)
N'est-ce pas (avec-out-str (impression x)) code> identique que (str x) code>? :)