2010-10-14 1 views
14

Vì vậy, tôi đã xác định một số vars để giữ dữ liệu trạng thái trong mã clojure của tôi. Tôi vừa phát hiện ra tôi có thể thêm một doc-chuỗi những vars ví dụ .:Đặt chuỗi tài liệu trên các vars dữ liệu, nó có được coi là thành ngữ không?

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

đó cho phép tôi gọi (doc *my-var*) tại REPL. Điều này có vẻ như một điều hợp lệ và hữu ích để làm nhưng nó không có vẻ như thực tế phổ biến trong mã (giới hạn) mà tôi đã đọc.

Đây có phải là clojure thành ngữ không?

+0

+1 cho ý tưởng; tò mò: tài liệu đó là ai? ai phải đọc nó? – Belun

+2

Tôi bây giờ là khá nhiều một chuyển đổi ý tưởng rằng tôi cần phải viết tài liệu cho "tương lai tôi". –

Trả lời

11

Cũng được sử dụng trong Clojure không gian tên (như clojure.pprint):

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

Bạn có thể wan't để sử dụng một macro tiện từ clojure.contrib.def:

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

Tôi nghĩ rằng đã có một bản vá được áp dụng gần đây, điều này mang lại hỗ trợ docstring cho "bản địa" 'def'. – kotarak

9

Kể từ clojure 1.3 , def đã cho phép một chuỗi tài liệu tùy chọn.

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