在Clojure中的完全合格的名字,难道还有比Clojure的:一个功能
(defn fully-qualified-name [fn]
(let [fn-meta (meta fn)
fn-ns (ns-name (:ns fn-meta))
]
(str fn-ns "/" (:name fn-meta))))
一个运行时的解决办法是找到一个函数(已知有元信息)的全名的更优雅的方式需要。欢迎阅读和编译时间解决方案。
在Clojure中的完全合格的名字,难道还有比Clojure的:一个功能
(defn fully-qualified-name [fn]
(let [fn-meta (meta fn)
fn-ns (ns-name (:ns fn-meta))
]
(str fn-ns "/" (:name fn-meta))))
一个运行时的解决办法是找到一个函数(已知有元信息)的全名的更优雅的方式需要。欢迎阅读和编译时间解决方案。
(resolve 'foo)
返回瓦尔名为‘foo’,其完全限定名称。
的ToString的输出可以让你开始:
user=> (.toString map)
"[email protected]"
也写成(str映射)得到完全限定的名字use(str'map) – 2010-09-22 17:54:36
type
给出了一个完全限定的名称,无论元信息如何。
它是否必须在函数中(而不是编译时在宏或REPL中)? – mikera 2010-09-21 15:30:31