【发布时间】:2015-07-16 22:26:31
【问题描述】:
这是一个简单的例子:
(let [^String y "abc"] (meta y)) ; returns nil
似乎根本没有元数据,为什么?
根据文档:
类型提示是放置在符号或表达式上的元数据标签 由编译器使用。
【问题讨论】:
标签: clojure metadata type-hinting
这是一个简单的例子:
(let [^String y "abc"] (meta y)) ; returns nil
似乎根本没有元数据,为什么?
根据文档:
类型提示是放置在符号或表达式上的元数据标签 由编译器使用。
【问题讨论】:
标签: clojure metadata type-hinting
(meta y) 返回 y 的元数据,而不是符号 y。
您无法访问 let 正文中的符号 y。只有在评估 let* 特殊形式时,评估者才能访问它。
(read-string "^String y")
;-> y ;; a symbol
(meta *1)
;-> {:tag String}
【讨论】: