在clojure中输入存储为元数据的提示?

时间:2015-05-06 16:34:58

标签: clojure metadata type-hinting

这是一个简单的例子:

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

似乎根本没有元数据,为什么?

根据文件:

  

类型提示是放置在符号或表达式上的元数据标签   由编译器使用。

1 个答案:

答案 0 :(得分:4)

(meta y)会返回y的元数据,而不是符号y。 您无法访问let正文中的符号y。只有评估者在评估let*特殊表格时才能访问它。

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

(meta *1)
;-> {:tag String}