我正在尝试打印一个名称空间列表:
(doseq [x (all-ns)] (println x))
Run Code Online (Sandbox Code Playgroud)
这将打印每个命名空间#<Namespace xxxxx>.我想得到每个名称空间xxxxx (没有#<Namespace>.我试过(name x),(symbol x)但我得到了ClassCastException clojure.lang.Namespace cannnot be cast to java.lang.Named,等等.
(doseq [x (all-ns)] (println (name x)))
(doseq [x (all-ns)] (println (str x)))
(doseq [x (all-ns)] (println (namespace x)))
Run Code Online (Sandbox Code Playgroud)
如何将命名空间作为字符串?
用途ns-name:
(doseq [x (all-ns)] (println (ns-name x)))
Run Code Online (Sandbox Code Playgroud)
请注意,它ns-name给你一个符号.所以,如果你想要一个字符串只是使用(str (ns-name ns)).