我在Clojure 1.3.0中对一些东西使用ordered set。我的project.clj包括[ordered "1.1.0"]。
当我调用(str (ordered-set 1 2 3))时,我会得到"ordered.set.OrderedSet@6",但是当我调用一个普通的clojure hash-set (str (hash-set 1 2 3))时,我会得到正确的"#{1 2 3}"。
str方法在某个地方调用.toString,那么如何覆盖ordered-set的.toString方法,以便从中获得正确的字符串呢?
谢谢
发布于 2012-04-13 16:03:42
这个问题有两个答案。一个是,ordered的懒惰维护者(我)应该振作起来,实现toString。另一个原因是,您可能不应该在关心可读性的任何东西上使用str - pr-str是一个更可靠的数据表示函数。例如,(str {:a 'a})和(str {:a "a"})的结果都是"{:a a}"。对于pr-str,类型信息仍然保留。
https://stackoverflow.com/questions/10136848
复制相似问题