zca*_*ate 5 clojure clojurescript
为了自定义记录的打印,我通常添加一个打印方法:
(defrecord Op [type value]
Object
(toString [op]
(str [type value])))
(defmethod print-method Op
[v w]
(.write w (str v)))
Run Code Online (Sandbox Code Playgroud)
但是当我在 clojurescript 中时,我收到一个错误:
Use of undeclared Var synchrony.operation/print-method at line 11
Run Code Online (Sandbox Code Playgroud)
我将如何在 cljs 中做到这一点?
我认为在 ClojureScript 中执行此操作的方法是将IPrintWithWriter协议扩展到您的对象,例如
(extend-protocol IPrintWithWriter
mycool.newObj
(-pr-writer [new-obj writer _]
(write-all writer "#myObj \"" (:details new-obj) "\"")))
Run Code Online (Sandbox Code Playgroud)
我找不到太多关于此的官方文档,因此可能有另一种/更好的方法来做到这一点。
| 归档时间: |
|
| 查看次数: |
489 次 |
| 最近记录: |