2024 Clojure 状态调查中分享您的想法!

欢迎!有关如何使用本网站的更多信息,请参阅关于页面。

0
编译器

示例

`
(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 的官方规范,但这个行为似乎不正确,至少不一致。

2 个答案

0

评论由:alexmiller 发布

可能相关:CLJ-1093, CLJ-1575, CLJ-1460

0
参考:https://clojure.atlassian.net/browse/CLJ-2467(由 alex+import 报告)
...