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")) 也是可行的。

1 答案

+1
...