Clojure:
Interpolando uma string
Como fazer:
;; Usando str para concatenar strings e variáveis
(def nome "Mundo")
(str "Olá, " nome "!")
;; Saida: "Olá, Mundo!"
;; Usando um template literal com `format`
(format "Olá, %s!" nome)
;; Saida: "Olá, Mundo!"
;; Usando clojure.pprint/cl-format para mais complexidade
(require '[clojure.pprint :as pprint])
(pprint/cl-format nil "Olá, ~A!" nome)
;; Saida: "Olá, Mundo!"
Mergulho Profundo
Interpolação de strings não é uma funcionalidade inerente na linguagem Clojure, ao contrário de linguagens como Ruby ou JavaScript. Em Clojure, geralmente utilizamos funções como str
e format
. Antes do Clojure, as linguagens Lisp já utilizavam funções de formato para interpolar strings, o que influenciou a abordagem do Clojure.
Alternativamente, algumas bibliotecas de terceiros permitem interpolação com sintaxe mais sucinta. Por exemplo, a clojure.string/interpolate
da biblioteca selmer
permite interpolar com uma notação mais próxima de outras linguagens.
Quanto à implementação, str
concatena valores convertendo-os para strings, enquanto format
e pprint/cl-format
utilizam placeholders específicos (%s
para string no format
, ~A
para argumentos automáticos no pprint/cl-format
) para substituir valores na string resultante.