Полагая doc-строки на данные vars, считается ли это идиоматическим?
Итак, я определил некоторые vars для хранения данных состояния в моем коде clojure. Я только что обнаружил, что могу добавить doc-строку для этих vars, например:
(def ^{:doc "Documentation for *my-var*"}
*my-var*)
Это позволяет мне называть (doc *my-var*)
в REPL. Это похоже на действительную и полезную вещь, но это не похоже на обычную практику в (ограниченном) коде, который я прочитал.
Является ли это рассмотренным идиоматическим clojure?
Ответы
Ответ 1
Также используется в пространствах имен Clojure (например, clojure.pprint):
(def
^{:doc "The base to use for printing integers and rationals."
:added "1.2"}
*print-base* 10)
Вы не можете использовать удобный макрос из clojure.contrib.def:
(defvar *my-var*
nil
"Documentation for *my-var*")
Ответ 2
Так как clojure 1.3, def
разрешил необязательную docstring.
(def *my-var*
"My var does cool things (it really doesn't)."
nil)