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

欢迎!请参阅 关于 页面以获取更多关于该功能的信息。

0
tools.macro

(defmacro event-handler (link: argsv & body)
`(reify EventHandler (~'handle ~argsv ~@body)))

(macroexpand
'(macrolet (link: (add-handler [& body)

                       `(event-handler
                          (link: ~'this ~'e) ~@body))]
 (add-handler 1)))

结果会在 handle 之后和 (link: this e) 之前出现额外的括号(请注意)

(do (reify* (link: javafx.event.EventHandler) (handle ((link: this e) 1))))

2 回答

0

评论者:oskarkv

这已在版本 0.1.5 中修复,但 GitHub 页面 https://github.com/clojure/tools.macro 表示最新版本是 0.1.2。

0
参考资料:https://clojure.atlassian.net/browse/TMACRO-7(由 alex+import 报告)
...