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

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

0
Clojure

这应该会抱怨使用完全限定的名称作为参数

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

      (valAt (link: _ key))))

相反,它只是简单地忽略该参数,在方法体中直接使用 clojure.core/key。

5 个答案

0

评论者:importer

richhickey 说:我不确定这个问题是否是你说的那样,或者解决方案是否应该按你建议的那样。真正的问题是 qualified 中的 key 的解析。另一种可能性是忽略那里的限定符。

0

评论者:importer

http://www.assembla.com/spaces/clojure/tickets/348 转换而来
附件
0001-Add-a-test-for-348-reify-shouldn-t-accept-qualified-.patch - https://www.assembla.com/spaces/clojure/documents/d2xUJIxTyr36fseJe5cbLA/download/d2xUJIxTyr36fseJe5cbLA

0

评论者:importer

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

0

评论者:importer

technomancy 表示:有趣。那么在这里强制使用 auto-gensym 是否不合适?为什么 reify 方法与代理方法的使用规则不同?

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

      (valAt (link: key) key)))

(lookup)

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

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