Clojure:
Интерполяция строки
Как это сделать:
;; Основы с `str` и `format`
(def name "Мир")
(str "Привет, " name "!") ; => "Привет, Мир!"
;; Использование `format`, аналогично форматированию в стиле printf
(format "До свидания, %s!" name) ; => "До свидания, Мир!"
;; В Clojure нет встроенной интерполяции строк, как в других языках,
;; но мы можем проявить творчество с `str` и `format`.Подробнее:
Clojure - немного аскет: нет встроенной интерполяции строк. Однако, str и format являются основными инструментами для динамических строк. История происхождения? Этос простоты Clojure. Он доверяет нам самим заниматься построением строк.
В качестве альтернативы представлен мир шаблонов: clostache (реализация Mustache для Clojure) или hiccup для контекстов HTML. Они пригодятся, когда str и format кажутся слишком примитивными.
Внутри, format использует String.format из Java, что демонстрирует суперспособность Clojure к взаимодействию с Java. Так что, хотя вы не получаете сладости, у вас есть мускулы Java, когда они вам нужны.
Смотрите также:
- Документация Clojure по
str: https://clojuredocs.org/clojure.core/str - Документация Clojure по
format: https://clojuredocs.org/clojure.core/format - репозиторий clostache на GitHub: https://github.com/fhd/clostache
- репозиторий hiccup на GitHub: https://github.com/weavejester/hiccup