如何为有序集重写.toString方法
我在Clojure 1.3.0中使用了一些有序集。我的如何为有序集重写.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
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似乎提供了一个易于阅读的输出,所以我现在将使用它,直到我更好地理解发生了什么。