2010-10-14 5 views
14

इसलिए मैंने अपने क्लोजर कोड में राज्य डेटा रखने के लिए कुछ वर्र्स परिभाषित किए हैं। मैं सिर्फ मैं उन वार्स उदा .:डेटा वर्र्स पर दस्तावेज़-स्ट्रिंग डालने पर, क्या इसे बेवकूफ माना जाता है?

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

मुझे आरईपीएल पर (doc *my-var*) फोन की सुविधा देता है कि करने के लिए कोई दस्तावेज़-स्ट्रिंग जोड़ सकते हैं की खोज की है। ऐसा करने के लिए एक वैध और उपयोगी चीज की तरह लगता है लेकिन यह मेरे द्वारा पढ़े गए (सीमित) कोड में सामान्य अभ्यास की तरह प्रतीत नहीं होता है।

क्या यह बेवकूफ क्लोजर माना जाता है?

+0

विचार के लिए +1; जिज्ञासा से बाहर: वह दस्तावेज किसके लिए है? इसे पढ़ने वाला कौन है? – Belun

+2

अब मैं इस विचार में काफी बदलाव कर रहा हूं कि मुझे "भविष्य में" के लिए दस्तावेज़ लिखने की आवश्यकता है। –

उत्तर

11

इसके अलावा Clojure नेमस्पेस (clojure.pprint की तरह) में इस्तेमाल किया:

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

आप clojure.contrib.def से एक सुविधा मैक्रो का उपयोग करने के लिए wan't हो सकता है:

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

मुझे लगता है कि हाल ही में एक पैच लागू किया गया था, जो "देशी" 'def' को डॉकस्ट्रिंग समर्थन लाता है। – kotarak

9
clojure 1.3 के बाद से

, def ने वैकल्पिक डॉकस्ट्रिंग की अनुमति दी है।

(def *my-var* 
    "My var does cool things (it really doesn't)." 
    nil) 
संबंधित मुद्दे