Mỗi Var trong Clojure đã: tên siêu dữ liệu kèm theo.
user> (def my-var {})
#'user/my-var
user> (:name (meta #'my-var))
my-var
user> (let [a-var #'my-var]
(:name (meta a-var)))
my-var
Tuy nhiên, thông thường nếu bạn đã có Var, sau đó bạn đã biết tên dù sao, và thường bạn không sử dụng Vars trong một chương trình (ví dụ, bạn chỉ cần vượt qua my-var hoặc my-vui vẻ chứ không phải hơn # 'my-var và #' my-fun).
Không có gì để nhận được Var (hoặc var-name) của hàm hoặc giá trị xảy ra là giá trị của một số Var. Một Var biết giá trị của nó, nhưng không phải là cách khác tròn. Điều đó tất nhiên có ý nghĩa vì, ví dụ, hàm rất giống nhau có thể là giá trị bằng không (đối với các hàm cục bộ) hoặc nhiều vars.
Nguồn
2013-07-15 11:47:09