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

欢迎!请查看 关于 页面了解有关此功能的更多信息。

+1 投票
Clojure
重新标记

Clojure 中的许多宏在宏展开时都会由编译器执行规范。

在此时刻,extend-protocol 没有这样的规范。
我想知道 extend-protocol 是否应该与 (Class/forName ..) 一起工作,或者扩展协议的类名必须始终是一个符号。规范是获取此答案的自然地方。extend-protocol 已知当您提供多个时无法与 Class/forName 一起工作。

(extend-protocol IFoo (Class/forName "[B") (Class/forName "[D")) 语法错误 (IllegalArgumentException) 编译于 (REPL:1:1)。不知道如何从:java.lang.Character 创建 ISeq

如果规范对此有任何说明,我还可以在 clj-kondo 中为它创建 linting。在此时刻这似乎有些含糊不清:(extend-protocol IFoo (Class/forName "[B")) 是可以正常工作的。

相关问题:https://clojure.atlassian.net/browse/CLJ-1381

1 个答案

+1 投票
...