如何为有序集重写.toString方法

如何为有序集重写.toString方法,string,clojure,println,String,Clojure,Println,我在Clojure 1.3.0中使用了一些有序集。我的project.clj包括[订购的“1.1.0”] 当我调用(str(ordered set 1 2 3))时,我得到了“ordered.set”。OrderedSet@6“但是当我调用一个普通的clojure散列集(str(散列集1 2 3))时,我得到了正确的“#{1 2 3}” str方法在某个地方调用了.toString,那么如何覆盖有序集的.toString方法,以便从中获得正确的字符串 谢谢这个问题有两个答案。一个是,ordere

我在Clojure 1.3.0中使用了一些有序集。我的
project.clj
包括
[订购的“1.1.0”]

当我调用
(str(ordered set 1 2 3))
时,我得到了
“ordered.set”。OrderedSet@6“
但是当我调用一个普通的clojure散列集
(str(散列集1 2 3))
时,我得到了正确的
“#{1 2 3}”

str
方法在某个地方调用了
.toString
,那么如何覆盖
有序集的
.toString
方法,以便从中获得正确的字符串


谢谢

这个问题有两个答案。一个是,
ordered
(me)的懒惰维护者应该齐心协力,实现
toString
。另一个是,您可能不应该在任何您关心可读性的地方使用
str
pr-str
是更可靠的数据表示函数。例如,
(str{:a'a})
(str{:a“a})
都会导致
“{:a a}”
。使用
pr str
类型信息仍然保留。

这个问题有两个答案。一个是,
ordered
(me)的懒惰维护者应该齐心协力,实现
toString
。另一个是,您可能不应该在任何您关心可读性的地方使用
str
pr-str
是更可靠的数据表示函数。例如,
(str{:a'a})
(str{:a“a})
都会导致
“{:a a}”
。使用
pr str
时,类型信息仍然保留。

@Sonicsmooth 1.2.0版已发布,并包含
.toString
实现,尽管我仍然提醒您不要使用它们。谢谢。我仍然不清楚str和pr-str之间的区别,除了pr-str似乎提供了一个易于阅读的输出,所以我现在将使用它,直到我更好地理解发生了什么。@Sonicsmooth 1.2.0版已经发布,并且包含
.toString
实现,尽管我仍然警告您不要使用它们。谢谢。我仍然不清楚str和pr-str之间的区别,除了pr-str似乎提供了一个易于阅读的输出,所以我现在将使用它,直到我更好地理解发生了什么。