2017-03-21 4 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