2010-10-14 11 views
14

Quindi ho definito alcuni vars per contenere i dati di stato nel mio codice clojure. Ho appena scoperto che posso aggiungere un doc-stringa per quei Vars ad es .:Mettendo le stringhe doc sui dati vars, è considerato idiomatico?

(def ^{:doc "Documentation for *my-var*"} 
     *my-var*) 

che mi permette di chiamare (doc *my-var*) al REPL. Sembra una cosa valida e utile da fare, ma non sembra una pratica comune nel (limitato) codice che ho letto.

È considerato clojure idiomatico?

+0

+1 per l'idea; per curiosità: per chi è quella documentazione? chi dovrebbe leggerlo? – Belun

+2

Ora sono praticamente convertito all'idea che ho bisogno di scrivere documentazione per il "futuro me". –

risposta

11

Utilizzato anche in spazi dei nomi Clojure (come clojure.pprint):

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

Si può wan't di utilizzare una macro convenienza da clojure.contrib.def:

(defvar *my-var* 
    nil 
    "Documentation for *my-var*") 
+1

Penso che sia stata applicata una patch di recente, che porta il supporto di docstring a "nat" 'def'. – kotarak

9

Dal clojure 1.3 , def ha consentito una docstring facoltativa.

(def *my-var* 
    "My var does cool things (it really doesn't)." 
    nil) 
Problemi correlati