Clojure:
Інтерполяція рядків
Як робити:
Clojure не має вбудованої підтримки інтерполяції рядків, але ми можемо використовувати str
або format
функції, або clojure.pprint/cl-format
, яка схожа на format
у Common Lisp.
; Використання `str`
(def name "Максим")
(str "Привіт, " name "!")
; Використання `format`
(format "Привіт, %s!" name)
; Використання `clojure.pprint/cl-format`
(require '[clojure.pprint :refer [cl-format]])
(cl-format nil "Привіт, ~a!" name)
Приклади виводу:
"Привіт, Максим!"
"Привіт, Максим!"
"Привіт, Максим!"
Глибше занурення
Інтерполяція рядків в інших мовах, наприклад у Ruby чи JavaScript, зазвичай простіша і більш прямолінійна. Clojure робить це через функції вище, бо він приділяє більше уваги незмінності даних і функціональності.
Щодо альтернатив, іноді ліби, наприклад clojure.string
, можуть допомогти з загальними операціями рядків, але для інтерполяції вони не так потужні.
Імплементація clojure.pprint/cl-format
взята з Common Lisp і дуже потужна. Вона дозволяє форматувати майже будь-що, але при цьому вимагає більше часу для вивчення та розуміння параметрів форматування.