如果我有一个符号,其名称空间是别名,例如 q/w,我如何找到它的实际名称空间,例如actual.namespace/w?
我知道resolve
会给我完全限定的 var,但我不知道如何获取 var 的命名空间。
我能做的最好的事情就是:
(defn fqns [s] (str (get (ns-aliases *ns*) (symbol (namespace s)))))
当然有更简单的方法吗?
您可以获取符号的名称空间对象,如下所示(如果您希望 ns 的名称作为字符串,则只需在末尾调用 str 即可):
(defn fqns [s] (->> (resolve s) meta :ns))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)