为ClojureScript添加自定义打印方法

5
为了自定义记录的打印,通常我会添加一个打印方法:
(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中完成这个任务?
1个回答

10

我认为在ClojureScript中实现这一点的方法是扩展IPrintWithWriter协议到你的对象上,例如:

我认为在ClojureScript中实现这一点的方法是将IPrintWithWriter协议扩展到您的对象上,例如:

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

我在官方文档中找不到太多关于此的资料,所以可能有另一种/更好的方法来完成这个。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接