如何在Clojurescript中获取记录类型?

时间:2013-06-19 11:56:57

标签: clojurescript

我在Clojurescript中有两条记录定义如下:

(defrecord Html [])
(defrecord Tree [])

我需要找出可以定义为这些记录的项目类型,我该怎么做?

(def a (Html.))

3 个答案:

答案 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)