我正在尝试漂亮地打印命名空间列表:
(doseq [x (all-ns)] (println x))
这会将每个命名空间打印成#<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)))
如何将命名空间作为字符串获取?
(doseq [x (all-ns)] (println (str x)))
是可以工作的,当我尝试时我确实有一个打字错误。但是如答案中所指出的ns-name
是要使用的函数,比str
更好。 - RubenLaguna