2017-03-21 86 views
1

定製打印方法要自定義記錄打印,我通常添加的打印方法:增加對clojurescript

(defrecord Op [type value] 
    Object 
    (toString [op] 
    (str [type value]))) 

(defmethod print-method Op 
    [v w] 
    (.write w (str v))) 

,但是當我在clojurescript我,我得到一個錯誤:

Use of undeclared Var synchrony.operation/print-method at line 11 

我該怎麼做cljs?

回答

2

我認爲在ClojureScript中這樣做的方法是將IPrintWithWriter協議擴展到您的對象,例如,

(extend-protocol IPrintWithWriter 
    mycool.newObj 
    (-pr-writer [new-obj writer _] 
    (write-all writer "#myObj \"" (:details new-obj) "\""))) 

我找不到這麼多的官方文檔,所以可能有另一種/更好的方法來做到這一點。

+0

這個工作真的很好。謝謝! – zcaudate