(deftype Bag [state]
Object
(toString [bag]
(str "Bag???" state)))
Tôi muốn các toString để trông giống nhưgì một phương thức toString tốt cho một đối tượng deftype'd trong clojure
clojure.core=> (def b (Bag. {:apples 1 :bannanas 4}))
#'clojure.core/b
clojure.core=> (str b)
"BAG: {:apples 1 :bannanas 4}"
một clojurey cách tốt đẹp của đại diện cho thông tin đó là gì? Là
"Bag/{:k :v}"
tốt hơn? Cộng đồng bạn gọi toStrings của bạn như thế nào?
Xác định mức độ thấp. Tôi đang cố gắng tạo các loại bộ sưu tập mới (túi và đa giác). Khi nào bạn sử dụng defrecord hoặc deftype và tại sao? –
Sử dụng phương pháp này với deftype mang lại một java.lang.StackOverflowError –
Có, nếu bạn đang tạo kiểu bộ sưu tập mới, deftype có lẽ là đúng, trong khi defrecord là thích hợp hơn khi cần một cái gì đó giống như cấu trúc của một số dữ liệu miền. –