请在2024 年 Clojure 状态调查!分享您的想法。

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

0
Clojure

这应该会因为使用完全限定名称作为参数而报错

(defmacro lookup (link: ))
`(reify clojure.lang.ILookup

      (valAt (link: _ key))))

取而代之,它只是简单地忽略方法体中的该参数,而使用 clojure.core/key。

5 个答案

0

评论者:导入器

richhickey 说:我不确定 bugs 是否正如你说的那样,或者解决方法是否如你所建议的那样。真正的问题是当键被限定时的解析。另一种可能性是在那里忽略限定符。

0

评论者:导入器

http://www.assembla.com/spaces/clojure/tickets/348 转换而来
附件
0001-为348-reify-shouldn-t-accept-qualified-.patch 添加测试 - https://www.assembla.com/spaces/clojure/documents/d2xUJIxTyr36fseJe5cbLA/download/d2xUJIxTyr36fseJe5cbLA

0

评论者:导入器

technomancy 说:在[文件:d2xUJIxTyr36fseJe5cbLA)]:一个测试来暴露不希望的行为

0
by

评论者:导入器

技术巫术说:很有趣。所以在这这里不适宜要求使用自动gensym?为什么reify方法和代理方法的规则不同?

(defmacro lookup (link: ))
`(proxy (link: clojure.lang.ILookup) (link: )

      (valAt (link: key) key)))

(lookup)

不能使用限定名称作为参数:clojure.core/key
(link: 抛出类 java.lang.Exception)

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