我在Clojurescript中有两条记录定义如下:
(defrecord Html [])
(defrecord Tree [])
我需要找出可以定义为这些记录的项目类型,我该怎么做?
(def a (Html.))
答案 0 :(得分:2)
(defrecord Html [])
(defrecord Tree [])
(= (type (->Html)) Html) ; true
(= (type (->Html)) Tree) ; false
(= (type (->Tree)) Html) ; false
(= (type (->Tree)) Tree) ; true
答案 1 :(得分:1)
最好的,独立于主机的方法是:
save
这适用于任何类型。
答案 2 :(得分:0)
最后我像这样解决了它似乎有效:
(defrecord Html [])
(defrecord Tree [])
(defprotocol TypeInfo
(gettype [this] nil)
)
(extend-type Html
TypeInfo
(gettype [this] "Html")
)
(extend-type Tree
TypeInfo
(gettype [this] "Tree")
)
(def a (Html.))
(gettype a)
(def b (Tree.))
(gettype b)