我在Clojure 1.3.0中使用了有序集。我的project.clj
包含[ordered "1.1.0"]
。
当我致电(str (ordered-set 1 2 3))
时,我得到"ordered.set.OrderedSet@6"
,但当我拨打普通的clojure哈希集(str (hash-set 1 2 3))
时,我会得到正确的"#{1 2 3}"
。
str
方法在某处调用.toString
,那么如何覆盖.toString
的{{1}}方法,以便我可以从中获取正确的字符串?
感谢
答案 0 :(得分:4)
嗯,这个问题有两个答案。一个是,ordered
(我)的懒惰维护者应该一起行动并实施toString
。另一种是,你可能不应该在任何你关心可读性的地方使用str
- pr-str
是一个更可靠的数据表示功能。例如,(str {:a 'a})
和(str {:a "a"})
都会产生"{:a a}"
。使用pr-str
时,类型信息仍然存在。