(deftype Bag [state]
Object
(toString [bag]
(str "Bag???" state)))
Я хочу ToString, чтобы выглядеть какЧто такое хороший метод ToString для объекта deftype'd в Clojure
clojure.core=> (def b (Bag. {:apples 1 :bannanas 4}))
#'clojure.core/b
clojure.core=> (str b)
"BAG: {:apples 1 :bannanas 4}"
Что такое хороший clojurey способ представления этой информации? Факс:
"Bag/{:k :v}"
лучше? Как сообщество вы называете своим toStrings?
Определить низкий уровень. Я пытаюсь создать новые типы коллекций (сумки и мультимаксы). Когда вы используете defrecord или deftype и почему? –
Используя этот метод с помощью deftype, вы получаете java.lang.StackOverflowError –
Да, если вы создаете новый тип коллекции, то, вероятно, неверный тип ошибки, в то время как defrecord более уместен при необходимости что-то вроде структуры некоторых данных домена. –