大家好!我不太确定这是否是错误,所以我将它报告在这里并询问“这是否是预期的?”
似乎 defrecord
和 deftype
表达式没有访问它们词法闭包中的绑定。以下两个类型声明在 Clojure 1.10.1 中都会失败,显示“无法解决符号:x 在这个上下文中”的错误。
(defprotocol ID
(id [x] x))
(let [x 10]
(deftype TType []
ID
(id [_] x)))
(let [x 10]
(defrecord TRecord []
ID
(id [_] x)))
幸会!