为 clojurescript 添加自定义打印方法
Adding a custom print method for 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 中执行此操作?
我认为在 ClojureScript 中执行此操作的方法是将 IPrintWithWriter
协议扩展到您的对象,例如
(extend-protocol IPrintWithWriter
mycool.newObj
(-pr-writer [new-obj writer _]
(write-all writer "#myObj \"" (:details new-obj) "\"")))
我找不到太多关于此的官方文档,所以可能有 another/better 方法可以做到这一点。
为了自定义打印记录,我通常会添加一个打印方法:
(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 中执行此操作?
我认为在 ClojureScript 中执行此操作的方法是将 IPrintWithWriter
协议扩展到您的对象,例如
(extend-protocol IPrintWithWriter
mycool.newObj
(-pr-writer [new-obj writer _]
(write-all writer "#myObj \"" (:details new-obj) "\"")))
我找不到太多关于此的官方文档,所以可能有 another/better 方法可以做到这一点。