[英]How to override .toString method for ordered-set
我在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
,那么如何覆盖ordered-set
的.toString
方法,以便我可以从中获取正确的字符串?
谢谢
嗯,这个问题有两个答案。 一个是, ordered
(我)的懒惰维护者应该一起行动并实现toString
。 另一种是,你可能不应该在任何关心可读性的地方使用str
- pr-str
是一种更可靠的数据表示功能。 例如, (str {:a 'a})
和(str {:a "a"})
都会产生"{:aa}"
。 使用pr-str
,类型信息仍然存在。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.