[英]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.