1
大きな地図や他のものがたくさんあるアプリケーションがあり、印刷時に読みにくいので、カスタム印刷機能を作ってprint-method
と呼んでください:私は、マップは、特別な治療を必要とする種類のものではないと判断した場合、私は通常の印刷メソッドを呼び出すことができますどのように印刷方法をバイパスする方法
fstr1
インサイド
(defmethod print-method clojure.lang.PersistentArrayMap [v ^java.io.Writer w]
(.write w (fstr1 v)))
、?
This answerは、print-method
がそれに派遣するので、:type
をメタデータに入れることを示唆しています。私はそれでいくつかの成功を収めましたが、私はいつもメタデータを制御することができないので、fstr1
の中から以前に定義された印刷メソッドに "進む"方法があることを望んでいます。参考のため
、ここfstr1
の私の現在の実装です:
(defn fstr1 ^String [x]
(cond
(ubergraph? x)
(fstr-ubergraph x)
(map? x)
(case (:type x)
:move (fstr-move x)
:workspace "(a workspace)"
:bdx (fstr-bdx x)
:rxn (fstr-rxn x)
(apply str (strip-type x)))
:else
(apply str (strip-type x))))
前にあなたは 'set!* print-length * 10'を試してみましたか? – birdspider