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 报告)
...