我希望能够以编程方式为clojure中的某个函数编写docstring.
例如,我希望能够做到这样的事情:
(defn my-function
(str "Here are some numbers " (range 10))
[]
(println "This function does nothing right now."))
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试这样做时,我得到"参数decleration str应该是一个向量".这在clojure中是不可能的,还是有一些偷偷摸摸的方式来做到这一点?以编程方式生成文档字符串的部分对我来说很有用.
是的,这绝对是可能的.你在这里遇到的是defn(或者更确切地说,def它扩展到的特殊形式)将docstring附加到符号iff第二位的参数是一个字符串.
您可以通过:doc自己设置元数据来避免这种情况.
(defn ^{:doc (apply str "Here are some numbers " (range 10))} my-function
[]
(println "This function does nothing right now."))
Run Code Online (Sandbox Code Playgroud)
或者可能通过编写自己的宏 - 但我认为以上是最简单的方法.
| 归档时间: |
|
| 查看次数: |
95 次 |
| 最近记录: |