将文档字符串放在数据变量上,它被认为是惯用的吗?

Ale*_*ard 15 documentation clojure

所以我已经定义了一些vars来保存我的clojure代码中的状态数据.我刚刚发现我可以为这些变量添加文档字符串,例如:

(def ^{:doc "Documentation for *my-var*"}
        *my-var*)
Run Code Online (Sandbox Code Playgroud)

那让我打电话(doc *my-var*)给REPL.这似乎是一个有效且有用的事情,但它似乎并不像我读过的(有限的)代码中的常见做法.

这被认为是惯用语吗?

Jür*_*zel 11

也用于Clojure命名空间(如clojure.pprint):

(def
 ^{:doc "The base to use for printing integers and rationals."
   :added "1.2"}
 *print-base* 10)
Run Code Online (Sandbox Code Playgroud)

您可能不想使用clojure.contrib.def中的便利宏:

(defvar *my-var*
  nil
  "Documentation for *my-var*")
Run Code Online (Sandbox Code Playgroud)

  • 我认为最近应用了一个补丁,它为“原生”`def` 带来了文档字符串支持。 (2认同)

dea*_*ost 11

从clojure 1.3开始,def已经允许了一个可选的docstring.

(def *my-var*
  "My var does cool things (it really doesn't)."
  nil)
Run Code Online (Sandbox Code Playgroud)