示例
`
(defrecord ABC [some-field])
(def ^:const abc (->ABC :some-value))
(println (class abc))
(defrecord XYZ [])
(def ^:const xyz (->XYZ))
(println (class xyz))
`
结果为
"sx.clj.temp.ABC clojure.lang.PersistentArrayMap"
XYZ 似乎丢失了其类信息,并且显然作为一个简单的映射存储,而不是一个记录。我没有找到 ^:const 的官方规范,但这个行为对我来说似乎不正确,或者至少不一致。