欢迎!有关如何使用本站的相关信息,请查阅关于页面。
应抱怨使用完全限定的名称作为参数
(defmacro lookup (link: )`(reify clojure.lang.ILookup
(valAt (link: _ key))))
但它简单地忽略该参数在方法体中,转而使用 clojure.core/key。
评论者:importer
richhickey说:我不确定问题是否正如您所说的那样,或者解决方案是否应该按照您建议的那样。真正的问题是key在限定时的解析。另一个可能性是忽略那里的限定符。
从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
technomancy说:(link: [file:d2xUJIxTyr36fseJe5cbLA)]: 一个测试来暴露不期望的行为
technomancy 表示:很有趣。所以在这个地方不要求auto-gensym?为什么reify方法和proxy方法规则不同?
(defmacro lookup (link: )`(proxy (link: clojure.lang.ILookup) (link: ) (valAt (link: key) key))) (lookup)
(defmacro lookup (link: )`(proxy (link: clojure.lang.ILookup) (link: )
(valAt (link: key) key)))
(lookup)
无法使用限定名称作为参数:clojure.core/key(link: 抛出类java.lang.Exception)