我正在使用pr-str序列化一个可能包含具有自动命名空间的关键字的数据结构。
我希望在序列化之前减少数据结构,使其不包含自动关键字,但不知道如何检测它?
(def x ::outbound)
(pr-str x) => "::outbound"
(edn/read-string "::outbound") => exception
(namespace x) => "current-namespace"
那么,有没有办法知道x是否有自动命名空间?
谢谢,
抱歉 - 未在repl上运行即写了这个问题 - 这里有一个合适的例子。
(keyword ":out") => ::out
(pr-str (keyword ":out")) => "::out"
(edn/read-string (pr-str (keyword ":out"))) =>
Execution error at user/eval93457 (form-init751239350220000799.clj:1).
Invalid token: ::out