类型提示存储为clojure中的元数据?

Posted

技术标签:

【中文标题】类型提示存储为clojure中的元数据?【英文标题】:Type hint stored as metadata in clojure? 【发布时间】:2015-07-16 22:26:31 【问题描述】:

这是一个简单的例子:

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

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

根据文档:

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

【问题讨论】:

【参考方案1】:

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

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

(meta *1)
;-> :tag String

【讨论】:

以上是关于类型提示存储为clojure中的元数据?的主要内容,如果未能解决你的问题,请参考以下文章

Python-元组

HDFS的元信息

Clojure:如何在运行时找出函数的arity?

在 Clojure 中将元组数组转换为哈希映射

元数据性能大比拼:HDFS vs OSS vs JuiceFS

Namenode的元数据存储