2015-05-06 24 views
1

下面是一個簡單的例子:類型提示作爲元數據存儲在clojure中?

(let [^String y "abc"] (meta y)) ; returns nil 

人們似乎沒有元數據在所有的,爲什麼呢?

根據該文檔:

類型提示是放置在符號或是 由編譯器所消耗的表達式的元數據標籤。

回答

4

(meta y)返回y元數據,而不是符號y。 您不能訪問let body中的符號y。只有評估人員在評估let*特殊表格時才能訪問它。

(read-string "^String y") 
;-> y ;; a symbol 

(meta *1) 
;-> {:tag String} 
相關問題